
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void pe_dll_build_sections(bfd *abfd,bfd_link_info *info)

{
  uint *puVar1;
  bfd_symbol **ppbVar2;
  bfd_symbol **ppbVar3;
  bfd *pbVar4;
  char cVar5;
  char cVar6;
  undefined3 uVar7;
  bfd_section **ppbVar8;
  byte bVar9;
  int iVar10;
  char *pcVar11;
  bfd_section *pbVar12;
  bfd_symbol *pbVar13;
  size_t sVar14;
  char *pcVar15;
  def_file *pdVar16;
  def_file_export *pdVar17;
  int *piVar18;
  def_file_export *pdVar19;
  char *pcVar20;
  int *piVar21;
  int iVar22;
  int *piVar23;
  def_file *pdVar24;
  int iVar25;
  def_file_export *pdVar26;
  def_file_aligncomm *pdVar27;
  byte *pbVar28;
  char cVar29;
  byte *pbVar30;
  byte *pbVar31;
  bool bVar32;
  bool bVar33;
  bool bVar34;
  bool bVar35;
  byte bVar36;
  def_file *local_48;
  bfd *local_44;
  char *local_40;
  int local_3c;
  int is_dup;
  undefined4 uStack_14;
  
  bVar36 = 0;
  uStack_14 = 0x66ca9;
  pe_dll_id_target(abfd->xvec->name);
  pe_output_file_set_long_section_names(abfd);
  if (pe_def_file == (def_file *)0x0) {
    pe_def_file = def_file_empty();
  }
  for (pbVar4 = info->input_bfds; pbVar4 != (bfd *)0x0; pbVar4 = (pbVar4->link).next) {
    iVar10 = bfd_get_section_by_name(pbVar4,".drectve");
    if (iVar10 != 0) {
      iVar25 = *(int *)(iVar10 + 0x2c);
      pcVar11 = (char *)xmalloc(iVar25);
      bfd_get_section_contents(pbVar4,iVar10,pcVar11,0,0,iVar25,iVar25 >> 0x1f);
      def_file_add_directive(pe_def_file,pcVar11,iVar25);
      free(pcVar11);
    }
  }
  pdVar27 = pe_def_file->aligncomms;
joined_r0x00066d64:
  if (pdVar27 != (def_file_aligncomm *)0x0) {
    do {
      iVar10 = bfd_link_hash_lookup(info->hash,pdVar27->symbol_name,0,0,0);
      if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x05')) {
        puVar1 = &pdVar27->alignment;
        if (**(uint **)(iVar10 + 0x14) < *puVar1) goto code_r0x00066da5;
      }
      pdVar27 = pdVar27->next;
      if (pdVar27 == (def_file_aligncomm *)0x0) break;
    } while( true );
  }
  bVar9 = *(byte *)info;
  if ((bVar9 & 2) == 0) {
    if (pe_def_file->num_exports != 0) {
      if (pe_dll_export_everything != 0) goto LAB_00066fad;
      iVar10 = pe_def_file->num_exports;
      if (pe_dll_kill_ats != 0) goto LAB_00066fde;
      goto LAB_000671fd;
    }
    pdVar24 = pe_def_file;
    if ((pe_dll_export_everything != 0) && (pe_dll_exclude_all_symbols == 0)) {
LAB_00066df0:
      local_44 = info->input_bfds;
      if (local_44 != (bfd *)0x0) {
        pbVar12 = (bfd_section *)(PTR__bfd_std_section_001cefbc + 0xc0);
        while (iVar10 = bfd_generic_link_read_symbols(local_44), iVar10 != 0) {
          if (0 < (int)local_44->symcount) {
            ppbVar2 = local_44->outsymbols + local_44->symcount;
            local_48 = (def_file *)local_44->outsymbols;
            do {
              while ((pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||
                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))))) {
LAB_00066f48:
                local_48 = (def_file *)((int)local_48 + 4);
                if ((def_file *)ppbVar2 == local_48) goto LAB_00067678;
              }
              bVar33 = link_info.version_info == (bfd_elf_version_tree *)0x0;
              if (!bVar33) {
                iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name);
                bVar33 = iVar10 == 0;
                if (!bVar33) goto LAB_00066f48;
                pbVar13 = *(bfd_symbol **)local_48;
              }
              bVar32 = false;
              pdVar24 = (def_file *)pbVar13->name;
              iVar10 = 6;
              pdVar16 = pdVar24;
              pbVar30 = (byte *)0x1adaf4;
              do {
                if (iVar10 == 0) break;
                iVar10 = iVar10 + -1;
                bVar32 = *(byte *)&pdVar16->name < *pbVar30;
                bVar33 = *(byte *)&pdVar16->name == *pbVar30;
                pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1);
                pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1;
              } while (bVar33);
              if ((!bVar32 && !bVar33) == bVar32) goto LAB_00066f48;
              sVar14 = strlen((char *)pdVar24);
              pcVar11 = (char *)xmalloc(sVar14 + 7);
              sprintf(pcVar11,"%s%s","__imp_",pdVar24);
              iVar10 = bfd_link_hash_lookup(info->hash,pcVar11,0,0,0);
              free(pcVar11);
              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x03')) goto LAB_00066f48;
              if (pe_details->underscored != 0) {
                pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))
                ;
              }
              iVar10 = auto_export(local_44,(def_file *)&pe_def_file->num_exports,
                                   (char *)&pe_def_file->exports,pdVar24);
              if (iVar10 == 0) goto LAB_00066f48;
              is_dup = 0;
              pdVar19 = def_file_add_export(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,
                                            &is_dup);
              if (is_dup != 0) goto LAB_00066f48;
              ppbVar3 = (bfd_symbol **)((int)local_48 + 4);
              pdVar19->flag_data = ((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1) & 1;
              local_48 = (def_file *)ppbVar3;
            } while (ppbVar2 != ppbVar3);
          }
LAB_00067678:
          local_44 = (local_44->link).next;
          if (local_44 == (bfd *)0x0) goto LAB_00066fbb;
        }
        pcVar11 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);
        einfo(pcVar11,local_44);
        iVar10 = pe_def_file->num_exports;
        pdVar24 = pe_def_file;
        goto joined_r0x00067b8d;
      }
LAB_00066fbb:
      iVar10 = pe_def_file->num_exports;
      pdVar24 = pe_def_file;
      if (iVar10 != 0) goto LAB_00066fd0;
      goto LAB_0006736e;
    }
LAB_00067375:
    if ((bVar9 & 1) == 0) {
      return;
    }
  }
  else {
    if ((pe_dll_export_everything != 0) || (iVar10 = pe_def_file->num_exports, iVar10 == 0)) {
LAB_00066fad:
      if (pe_dll_exclude_all_symbols == 0) goto LAB_00066df0;
      goto LAB_00066fbb;
    }
LAB_00066fd0:
    if (pe_dll_kill_ats == 0) {
LAB_000671fd:
      sVar14 = pe_def_file->num_exports;
      local_48 = pe_def_file;
      if (pe_dll_stdcall_aliases == 0) goto LAB_00067212;
LAB_0006709d:
      bVar33 = false;
      bVar32 = sVar14 == 0;
      if (0 < (int)sVar14) {
        local_40 = (char *)0x0;
        local_44 = (bfd *)0x0;
        do {
          pbVar30 = *(byte **)((int)&local_48->exports->name + (int)local_40);
          iVar10 = 6;
          pbVar28 = pbVar30;
          pbVar31 = (byte *)0x1adaf4;
          do {
            if (iVar10 == 0) break;
            iVar10 = iVar10 + -1;
            bVar33 = *pbVar28 < *pbVar31;
            bVar32 = *pbVar28 == *pbVar31;
            pbVar28 = pbVar28 + (uint)bVar36 * -2 + 1;
            pbVar31 = pbVar31 + (uint)bVar36 * -2 + 1;
          } while (bVar32);
          if (((!bVar33 && !bVar32) != bVar33) &&
             (pcVar11 = strchr((char *)pbVar30,0x40), pcVar11 != (char *)0x0)) {
            is_dup = 1;
            pdVar16 = (def_file *)xstrdup(pbVar30 + (*pbVar30 == 0x40));
            pcVar11 = strchr((char *)pdVar16,0x40);
            pdVar24 = pe_def_file;
            *pcVar11 = '\0';
            iVar10 = auto_export((bfd *)0x0,(def_file *)&pdVar24->num_exports,
                                 (char *)&pdVar24->exports,pdVar16);
            if (iVar10 != 0) {
              def_file_add_export(pe_def_file,(char *)pdVar16,
                                  *(char **)((int)&pe_def_file->exports->internal_name +
                                            (int)local_40),-1,(char *)0x0,&is_dup);
            }
            local_48 = pe_def_file;
            if (is_dup != 0) {
              free(pdVar16);
              local_48 = pe_def_file;
            }
          }
          local_44 = (bfd *)((int)local_44 + 1);
          sVar14 = local_48->num_exports;
          local_40 = (char *)((int)local_40 + 0x1c);
          bVar33 = local_44 < sVar14;
          bVar32 = local_44 == (bfd *)sVar14;
        } while ((int)local_44 < (int)sVar14);
        goto LAB_00067212;
      }
LAB_00067c38:
      iVar10 = 0;
      iVar25 = 0;
    }
    else {
LAB_00066fde:
      bVar33 = false;
      iVar25 = 0;
      local_48 = pe_def_file;
      if (iVar10 < 1) goto LAB_000671fd;
      do {
        pcVar11 = local_48->exports[iVar25].name;
        cVar29 = *pcVar11;
        if ((cVar29 != '?') && (pcVar15 = strchr(pcVar11,0x40), pcVar15 != (char *)0x0)) {
          pcVar11 = (char *)xstrdup(pcVar11 + (cVar29 == '@'));
          pcVar15 = strrchr(pcVar11,0x40);
          if (pcVar15 == (char *)0x0) {
            pcVar15 = pe_def_file->exports[iVar25].name;
            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);
            einfo(pcVar20,pcVar15);
          }
          else {
            *pcVar15 = '\0';
          }
          local_48 = pe_def_file;
          bVar33 = true;
          pe_def_file->exports[iVar25].name = pcVar11;
        }
        sVar14 = local_48->num_exports;
        iVar25 = iVar25 + 1;
      } while (iVar25 < (int)sVar14);
      if (bVar33) {
        qsort(local_48->exports,sVar14,0x1c,pe_export_sort);
        local_48 = pe_def_file;
        sVar14 = pe_def_file->num_exports;
      }
      if (pe_dll_stdcall_aliases != 0) goto LAB_0006709d;
LAB_00067212:
      pdVar24 = local_48;
      pdVar19 = local_48->exports;
      if ((int)sVar14 < 1) goto LAB_00067c38;
      local_48 = (def_file *)0x0;
      iVar25 = 0;
      pdVar26 = pdVar19;
      do {
        if (local_48 == (def_file *)0x0) {
LAB_00067327:
          if ((def_file *)iVar25 != local_48) {
            pdVar17 = pdVar19 + iVar25;
            pdVar17->name = pdVar26->name;
            pdVar17->internal_name = pdVar26->internal_name;
            pdVar17->its_name = pdVar26->its_name;
            pdVar17->ordinal = pdVar26->ordinal;
            pdVar17->hint = pdVar26->hint;
            cVar29 = pdVar26->flag_constant;
            cVar5 = pdVar26->flag_noname;
            cVar6 = pdVar26->flag_data;
            pdVar17->flag_private = pdVar26->flag_private;
            pdVar17->flag_constant = cVar29;
            pdVar17->flag_noname = cVar5;
            pdVar17->flag_data = cVar6;
            uVar7 = *(undefined3 *)&pdVar26->field_0x19;
            pdVar17->flag_forward = pdVar26->flag_forward;
            *(undefined3 *)&pdVar17->field_0x19 = uVar7;
          }
          iVar25 = iVar25 + 1;
        }
        else {
          local_40 = pdVar26->name;
          iVar10 = strcmp(local_40,pdVar26[-1].name);
          if (iVar10 != 0) goto LAB_00067327;
          pdVar17 = pdVar19 + iVar25 + -1;
          iVar10 = pdVar17->ordinal;
          if (((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)) || (iVar10 == iVar22)) {
            if (pe_dll_warn_dup_exports != 0) {
              pcVar11 = pdVar17->name;
              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);
              einfo(pcVar15,pcVar11);
              local_40 = pdVar26->name;
            }
LAB_00067748:
            iVar22 = pdVar26->ordinal;
            if (iVar22 != -1) goto LAB_000672a7;
          }
          else {
            if (pe_dll_warn_dup_exports != 0) {
              pcVar11 = pdVar17->name;
              pcVar15 = (char *)dcgettext(0,
                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
                                          ,5);
              einfo(pcVar15,pcVar11,iVar10,iVar22);
              local_40 = pdVar26->name;
              goto LAB_00067748;
            }
LAB_000672a7:
            pdVar17->ordinal = iVar22;
          }
          pdVar17->flag_private = pdVar17->flag_private | pdVar26->flag_private;
          pdVar17->flag_constant = pdVar17->flag_constant | pdVar26->flag_constant;
          pdVar17->flag_noname = pdVar17->flag_noname | pdVar26->flag_noname;
          pdVar17->flag_data = pdVar17->flag_data | pdVar26->flag_data;
          if (local_40 != (char *)0x0) {
            free(local_40);
          }
          if (pdVar26->internal_name != (char *)0x0) {
            free(pdVar26->internal_name);
          }
          pdVar24 = pe_def_file;
          if (pdVar26->its_name != (char *)0x0) {
            free(pdVar26->its_name);
            pdVar24 = pe_def_file;
          }
        }
        local_48 = (def_file *)((int)local_48 + 1);
        pdVar26 = pdVar26 + 1;
      } while ((int)local_48 < pdVar24->num_exports);
      iVar10 = iVar25 * 8;
      local_48 = pdVar24;
    }
    local_48->num_exports = iVar25;
    exported_symbol_offsets = (bfd_vma *)xmalloc(iVar10);
    exported_symbol_sections = (bfd_section **)xmalloc(pe_def_file->num_exports << 2);
    pdVar24 = pe_def_file;
    memset(exported_symbol_sections,0,pe_def_file->num_exports * 4);
    iVar10 = pdVar24->num_exports;
    max_ordinal = 0;
    min_ordinal = 0x10000;
    count_exported = 0;
    count_exported_byname = 0;
    count_with_ordinals = 0;
    if (0 < iVar10) {
      local_48 = (def_file *)0x0;
      do {
        pcVar11 = pdVar24->exports[(int)local_48].internal_name;
        lang_add_gc_name(pcVar11);
        sVar14 = strlen(pcVar11);
        pcVar15 = (char *)xmalloc(sVar14 + 2);
        if ((pe_details->underscored == 0) || (*pcVar11 == '@')) {
          strcpy(pcVar15,pcVar11);
        }
        else {
          *pcVar15 = '_';
          strcpy(pcVar15 + 1,pcVar11);
          pcVar20 = (char *)xstrdup(pcVar15);
          lang_add_gc_name(pcVar20);
        }
        iVar10 = bfd_link_hash_lookup(info->hash,pcVar15,0,0,1);
        pdVar24 = pe_def_file;
        if (iVar10 == 0) {
          pcVar20 = strchr(pcVar11,0x2e);
          if (pcVar20 != (char *)0x0) {
LAB_00067968:
            pdVar24 = pe_def_file;
            count_exported = count_exported + 1;
            pdVar19 = pe_def_file->exports + (int)local_48;
            if (pdVar19->flag_noname == '\0') {
              count_exported_byname = count_exported_byname + 1;
            }
            pdVar19->flag_forward = '\x01';
            goto LAB_00067863;
          }
          pcVar20 = "%X%P: cannot export %s: symbol not found\n";
LAB_000679ab:
          pcVar20 = (char *)dcgettext(0,pcVar20,5);
          einfo(pcVar20,pcVar11);
          pdVar24 = pe_def_file;
        }
        else {
          cVar29 = *(char *)(iVar10 + 0xc);
          if ((cVar29 - 3U & 0xfd) == 0) {
            count_exported = count_exported + 1;
            pdVar19 = pe_def_file->exports + (int)local_48;
            if (pdVar19->flag_noname == '\0') {
              count_exported_byname = count_exported_byname + 1;
            }
            if (cVar29 == '\x03') {
              exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14);
            }
            else {
              exported_symbol_sections[(int)local_48] =
                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;
            }
LAB_00067863:
            iVar10 = pdVar19->ordinal;
            if (iVar10 != -1) {
              if (max_ordinal < iVar10) {
                max_ordinal = iVar10;
              }
              if (iVar10 < min_ordinal) {
                min_ordinal = iVar10;
              }
              count_with_ordinals = count_with_ordinals + 1;
            }
          }
          else {
            pcVar20 = strchr(pcVar11,0x2e);
            if (pcVar20 != (char *)0x0) goto LAB_00067968;
            if (cVar29 == '\x01') {
              pcVar20 = "%X%P: cannot export %s: symbol not defined\n";
              goto LAB_000679ab;
            }
            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5
                                       );
            einfo(pcVar20,pcVar11,cVar29,3);
            pdVar24 = pe_def_file;
          }
        }
        free(pcVar15);
        local_48 = (def_file *)((int)local_48 + 1);
        iVar10 = pdVar24->num_exports;
      } while ((int)local_48 < iVar10);
    }
joined_r0x00067b8d:
    if (iVar10 == 0) {
LAB_0006736e:
      bVar9 = *(byte *)info;
      goto LAB_00067375;
    }
  }
  dll_name = pdVar24->name;
  if (dll_name == (char *)0x0) {
    dll_name = abfd->filename;
    cVar29 = *dll_name;
    if (cVar29 != '\0') {
      bVar33 = false;
      pcVar15 = dll_name;
      pcVar11 = dll_name;
      do {
        bVar32 = cVar29 == '\\';
        bVar34 = cVar29 == '/';
        bVar35 = cVar29 == ':';
        pcVar15 = pcVar15 + 1;
        cVar29 = *pcVar15;
        if ((bVar32 || bVar34) || bVar35) {
          bVar33 = (bVar32 || bVar34) || bVar35;
          pcVar11 = pcVar15;
        }
      } while (cVar29 != '\0');
      if (bVar33) {
        dll_name = pcVar11;
      }
    }
  }
  if ((count_with_ordinals == 0) || (max_ordinal <= count_exported)) {
    min_ordinal = 1;
    max_ordinal = count_exported;
  }
  else {
    iVar10 = (max_ordinal - count_exported) + 1;
    if (iVar10 < min_ordinal) {
      min_ordinal = iVar10;
    }
  }
  export_table_size = (max_ordinal - min_ordinal) + 1;
  piVar18 = (int *)xmalloc(export_table_size * 4);
  piVar23 = piVar18 + export_table_size;
  exported_symbols = piVar18;
  if (0 < export_table_size) {
    do {
      *piVar18 = -1;
      piVar18 = piVar18 + 1;
    } while (piVar23 != piVar18);
  }
  local_48 = pe_def_file;
  local_3c = min_ordinal;
  if (pe_def_file->num_exports < 1) {
    local_44 = (bfd *)0x0;
    iVar10 = min_ordinal;
    goto LAB_00067580;
  }
  local_44 = (bfd *)0x0;
  local_40 = (char *)0x0;
  pdVar19 = pe_def_file->exports;
  do {
    pdVar26 = pdVar19 + (int)local_40;
    if ((exported_symbol_sections[(int)local_40] == (bfd_section *)0x0) &&
       (pdVar26->flag_forward == '\0')) {
      pdVar19 = local_48->exports;
      pdVar26 = pdVar19 + (int)local_40;
    }
    else {
      iVar10 = pdVar26->ordinal;
      if (iVar10 != -1) {
        iVar25 = iVar10 - local_3c;
        piVar23 = exported_symbols + iVar25;
        if (*piVar23 != -1) {
          pcVar11 = pdVar26->name;
          pcVar15 = pdVar19[*piVar23].name;
          pcVar20 = (char *)dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);
          einfo(pcVar20,iVar10,pcVar11,pcVar15);
          local_3c = min_ordinal;
          piVar23 = exported_symbols + iVar25;
          local_48 = pe_def_file;
        }
        *piVar23 = (int)local_40;
      }
      pdVar19 = local_48->exports;
      pdVar26 = pdVar19 + (int)local_40;
      if (pdVar26->its_name == (char *)0x0) {
        sVar14 = strlen(pdVar26->name);
        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);
      }
      else {
        sVar14 = strlen(pdVar26->its_name);
        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);
      }
    }
    if (pdVar26->flag_forward != '\0') {
      sVar14 = strlen(pdVar26->internal_name);
      local_44 = (bfd *)((int)local_44 + 1 + sVar14);
    }
    ppbVar8 = exported_symbol_sections;
    piVar23 = exported_symbols;
    local_40 = (char *)((int)local_40 + 1);
  } while ((int)local_40 < local_48->num_exports);
  iVar10 = local_3c;
  if (local_48->num_exports < 1) goto LAB_00067580;
  iVar25 = 0;
  piVar18 = &pdVar19->ordinal;
  do {
    if (ppbVar8[iVar25] == (bfd_section *)0x0) {
      if (*(char *)(piVar18 + 3) != '\0') {
        iVar22 = *piVar18;
        goto joined_r0x000676c3;
      }
    }
    else {
      iVar22 = *piVar18;
joined_r0x000676c3:
      if (iVar22 == -1) {
        piVar21 = piVar23 + (iVar10 - local_3c);
        if (*piVar21 != -1) {
          iVar10 = iVar10 + 1;
          piVar21 = piVar23 + (iVar10 - local_3c);
          while (*piVar21 != -1) {
            iVar10 = iVar10 + 1;
            piVar21 = piVar21 + 1;
          }
        }
        *piVar21 = iVar25;
        *piVar18 = iVar10;
      }
    }
    iVar25 = iVar25 + 1;
    piVar18 = piVar18 + 7;
    if (local_48->num_exports <= iVar25) {
LAB_00067580:
      iVar25 = max_ordinal;
      if ((0xffff < max_ordinal) || (0xffff < iVar10)) {
        pcVar11 = (char *)dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);
        if (iVar10 <= iVar25) {
          iVar10 = iVar25;
        }
        einfo(pcVar11,iVar10);
      }
      iVar10 = count_exported_byname;
      sVar14 = strlen(dll_name);
      edata_sz = (int)local_44 + iVar10 * 6 + 0x29 + export_table_size * 4 + sVar14;
      build_filler_bfd(1);
      pe_output_file_set_long_section_names(filler_bfd);
      return;
    }
  } while( true );
code_r0x00066da5:
  pdVar27 = pdVar27->next;
  **(uint **)(iVar10 + 0x14) = *puVar1;
  goto joined_r0x00066d64;
}



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

void FUN_00066ca0(undefined4 *param_1,byte *param_2)

{
  uint *puVar1;
  byte bVar2;
  int iVar3;
  void *pvVar4;
  undefined *puVar5;
  int iVar6;
  size_t sVar7;
  char *pcVar8;
  char *pcVar9;
  undefined4 *puVar10;
  undefined4 *puVar11;
  undefined4 uVar12;
  int *piVar13;
  undefined4 uVar14;
  char *pcVar15;
  undefined4 uVar16;
  int *piVar17;
  int iVar18;
  byte *pbVar19;
  byte *pbVar20;
  int iVar21;
  char cVar22;
  byte *pbVar23;
  undefined4 *puVar24;
  bool bVar25;
  bool bVar26;
  bool bVar27;
  bool bVar28;
  byte bVar29;
  int *local_48;
  uint local_44;
  char *local_40;
  int local_3c;
  int local_20 [3];
  undefined4 uStack_14;
  
  bVar29 = 0;
  uStack_14 = 0x66ca9;
  FUN_00063a00(*(undefined4 *)param_1[1]);
  FUN_00066c30(param_1);
  if (DAT_001d1218 == (undefined4 *)0x0) {
    DAT_001d1218 = (undefined4 *)FUN_000589a0();
  }
  for (iVar6 = *(int *)(param_2 + 0x3c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x9c)) {
    iVar3 = bfd_get_section_by_name(iVar6,".drectve");
    if (iVar3 != 0) {
      iVar18 = *(int *)(iVar3 + 0x2c);
      pvVar4 = (void *)xmalloc(iVar18);
      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);
      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);
      free(pvVar4);
    }
  }
  piVar13 = (int *)DAT_001d1218[0x12];
joined_r0x00066d64:
  if (piVar13 != (int *)0x0) {
    do {
      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);
      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {
        puVar1 = (uint *)(piVar13 + 2);
        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;
      }
      piVar13 = (int *)*piVar13;
      if (piVar13 == (int *)0x0) break;
    } while( true );
  }
  bVar2 = *param_2;
  if ((bVar2 & 2) == 0) {
    if (DAT_001d1218[0xb] != 0) {
      if (DAT_001d1214 != 0) goto LAB_00066fad;
      iVar6 = DAT_001d1218[0xb];
      if (DAT_001d120c != 0) goto LAB_00066fde;
      goto LAB_000671fd;
    }
    puVar24 = DAT_001d1218;
    if ((DAT_001d1214 != 0) && (DAT_001d1210 == 0)) {
LAB_00066df0:
      local_44 = *(uint *)(param_2 + 0x3c);
      if (local_44 != 0) {
        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;
        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {
          if (0 < *(int *)(local_44 + 0x7c)) {
            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);
            local_48 = *(int **)(local_44 + 0x78);
            do {
              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||
                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {
LAB_00066f48:
                local_48 = local_48 + 1;
                if (piVar13 == local_48) goto LAB_00067678;
              }
              bVar26 = DAT_001d1478 == 0;
              if (!bVar26) {
                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));
                bVar26 = iVar6 == 0;
                if (!bVar26) goto LAB_00066f48;
                iVar6 = *local_48;
              }
              bVar25 = false;
              pbVar19 = *(byte **)(iVar6 + 4);
              iVar6 = 6;
              pbVar20 = pbVar19;
              pbVar23 = (byte *)0x1adaf4;
              do {
                if (iVar6 == 0) break;
                iVar6 = iVar6 + -1;
                bVar25 = *pbVar20 < *pbVar23;
                bVar26 = *pbVar20 == *pbVar23;
                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;
                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;
              } while (bVar26);
              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;
              sVar7 = strlen((char *)pbVar19);
              pcVar8 = (char *)xmalloc(sVar7 + 7);
              sprintf(pcVar8,"%s%s","__imp_",pbVar19);
              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);
              free(pcVar8);
              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;
              if (*(int *)(DAT_001d127c + 0x14) != 0) {
                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);
              }
              iVar6 = FUN_00062820(pbVar19);
              if (iVar6 == 0) goto LAB_00066f48;
              local_20[0] = 0;
              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);
              if (local_20[0] != 0) goto LAB_00066f48;
              piVar17 = local_48 + 1;
              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;
              local_48 = piVar17;
            } while (piVar13 != piVar17);
          }
LAB_00067678:
          local_44 = *(int *)(local_44 + 0x9c);
          if (local_44 == 0) goto LAB_00066fbb;
        }
        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);
        FUN_00034d20(uVar14,local_44);
        iVar6 = DAT_001d1218[0xb];
        puVar24 = DAT_001d1218;
        goto joined_r0x00067b8d;
      }
LAB_00066fbb:
      iVar6 = DAT_001d1218[0xb];
      puVar24 = DAT_001d1218;
      if (iVar6 != 0) goto LAB_00066fd0;
      goto LAB_0006736e;
    }
LAB_00067375:
    if ((bVar2 & 1) == 0) {
      return;
    }
  }
  else {
    if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {
LAB_00066fad:
      if (DAT_001d1210 == 0) goto LAB_00066df0;
      goto LAB_00066fbb;
    }
LAB_00066fd0:
    if (DAT_001d120c == 0) {
LAB_000671fd:
      sVar7 = DAT_001d1218[0xb];
      local_48 = DAT_001d1218;
      if (DAT_001d1208 == 0) goto LAB_00067212;
LAB_0006709d:
      bVar26 = false;
      bVar25 = sVar7 == 0;
      if (0 < (int)sVar7) {
        local_40 = (char *)0x0;
        local_44 = 0;
        do {
          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);
          iVar6 = 6;
          pbVar20 = pbVar19;
          pbVar23 = (byte *)0x1adaf4;
          do {
            if (iVar6 == 0) break;
            iVar6 = iVar6 + -1;
            bVar26 = *pbVar20 < *pbVar23;
            bVar25 = *pbVar20 == *pbVar23;
            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;
            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;
          } while (bVar25);
          if (((!bVar26 && !bVar25) != bVar26) &&
             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {
            local_20[0] = 1;
            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));
            pcVar9 = strchr(pcVar8,0x40);
            *pcVar9 = '\0';
            iVar6 = FUN_00062820(pcVar8);
            if (iVar6 != 0) {
              FUN_00058c90(DAT_001d1218,pcVar8,
                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,
                           local_20);
            }
            local_48 = DAT_001d1218;
            if (local_20[0] != 0) {
              free(pcVar8);
              local_48 = DAT_001d1218;
            }
          }
          local_44 = local_44 + 1;
          sVar7 = local_48[0xb];
          local_40 = (char *)((int)local_40 + 0x1c);
          bVar26 = local_44 < sVar7;
          bVar25 = local_44 == sVar7;
        } while ((int)local_44 < (int)sVar7);
        goto LAB_00067212;
      }
LAB_00067c38:
      iVar6 = 0;
      iVar3 = 0;
    }
    else {
LAB_00066fde:
      bVar26 = false;
      iVar3 = 0;
      local_48 = DAT_001d1218;
      if (iVar6 < 1) goto LAB_000671fd;
      do {
        iVar6 = iVar3 * 0x1c;
        pcVar8 = *(char **)(local_48[0xc] + iVar6);
        cVar22 = *pcVar8;
        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {
          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));
          pcVar9 = strrchr(pcVar8,0x40);
          if (pcVar9 == (char *)0x0) {
            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);
            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);
            FUN_00034d20(uVar16,uVar14);
          }
          else {
            *pcVar9 = '\0';
          }
          local_48 = DAT_001d1218;
          bVar26 = true;
          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;
        }
        sVar7 = local_48[0xb];
        iVar3 = iVar3 + 1;
      } while (iVar3 < (int)sVar7);
      if (bVar26) {
        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);
        local_48 = DAT_001d1218;
        sVar7 = DAT_001d1218[0xb];
      }
      if (DAT_001d1208 != 0) goto LAB_0006709d;
LAB_00067212:
      piVar13 = local_48;
      puVar24 = (undefined4 *)local_48[0xc];
      if ((int)sVar7 < 1) goto LAB_00067c38;
      local_48 = (int *)0x0;
      iVar3 = 0;
      puVar11 = puVar24;
      do {
        if (local_48 == (int *)0x0) {
LAB_00067327:
          if ((int *)iVar3 != local_48) {
            puVar10 = puVar24 + iVar3 * 7;
            *puVar10 = *puVar11;
            puVar10[1] = puVar11[1];
            puVar10[2] = puVar11[2];
            puVar10[3] = puVar11[3];
            puVar10[4] = puVar11[4];
            puVar10[5] = puVar11[5];
            puVar10[6] = puVar11[6];
          }
          iVar3 = iVar3 + 1;
        }
        else {
          local_40 = (char *)*puVar11;
          iVar6 = strcmp(local_40,(char *)puVar11[-7]);
          if (iVar6 != 0) goto LAB_00067327;
          puVar10 = puVar24 + iVar3 * 7 + -7;
          iVar6 = puVar10[3];
          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {
            if (DAT_001d1204 != 0) {
              uVar14 = *puVar10;
              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);
              FUN_00034d20(uVar16,uVar14);
              local_40 = (char *)*puVar11;
            }
LAB_00067748:
            iVar18 = puVar11[3];
            if (iVar18 != -1) goto LAB_000672a7;
          }
          else {
            if (DAT_001d1204 != 0) {
              uVar14 = *puVar10;
              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)
              ;
              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);
              local_40 = (char *)*puVar11;
              goto LAB_00067748;
            }
LAB_000672a7:
            puVar10[3] = iVar18;
          }
          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);
          *(byte *)((int)puVar10 + 0x15) =
               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);
          *(byte *)((int)puVar10 + 0x16) =
               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);
          *(byte *)((int)puVar10 + 0x17) =
               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);
          if (local_40 != (char *)0x0) {
            free(local_40);
          }
          if ((void *)puVar11[1] != (void *)0x0) {
            free((void *)puVar11[1]);
          }
          piVar13 = DAT_001d1218;
          if ((void *)puVar11[2] != (void *)0x0) {
            free((void *)puVar11[2]);
            piVar13 = DAT_001d1218;
          }
        }
        local_48 = (int *)((int)local_48 + 1);
        puVar11 = puVar11 + 7;
      } while ((int)local_48 < piVar13[0xb]);
      iVar6 = iVar3 * 8;
      local_48 = piVar13;
    }
    local_48[0xb] = iVar3;
    DAT_001d1278 = xmalloc(iVar6);
    DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);
    puVar24 = DAT_001d1218;
    memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);
    iVar6 = puVar24[0xb];
    DAT_001d1258 = 0;
    DAT_001d125c = 0x10000;
    DAT_001d126c = 0;
    DAT_001d1268 = 0;
    DAT_001d1264 = 0;
    if (0 < iVar6) {
      local_48 = (int *)0x0;
      do {
        iVar6 = (int)local_48 * 0x1c;
        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);
        FUN_00028f70(pcVar8);
        sVar7 = strlen(pcVar8);
        pcVar9 = (char *)xmalloc(sVar7 + 2);
        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {
          strcpy(pcVar9,pcVar8);
        }
        else {
          *pcVar9 = '_';
          strcpy(pcVar9 + 1,pcVar8);
          uVar14 = xstrdup(pcVar9);
          FUN_00028f70(uVar14);
        }
        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);
        puVar24 = DAT_001d1218;
        if (iVar3 == 0) {
          pcVar15 = strchr(pcVar8,0x2e);
          if (pcVar15 != (char *)0x0) {
LAB_00067968:
            puVar24 = DAT_001d1218;
            DAT_001d126c = DAT_001d126c + 1;
            iVar6 = iVar6 + DAT_001d1218[0xc];
            if (*(char *)(iVar6 + 0x16) == '\0') {
              DAT_001d1268 = DAT_001d1268 + 1;
            }
            *(undefined1 *)(iVar6 + 0x18) = 1;
            goto LAB_00067863;
          }
          pcVar15 = "%X%P: cannot export %s: symbol not found\n";
LAB_000679ab:
          uVar14 = dcgettext(0,pcVar15,5);
          FUN_00034d20(uVar14,pcVar8);
          puVar24 = DAT_001d1218;
        }
        else {
          cVar22 = *(char *)(iVar3 + 0xc);
          if ((cVar22 - 3U & 0xfd) == 0) {
            DAT_001d126c = DAT_001d126c + 1;
            iVar6 = iVar6 + DAT_001d1218[0xc];
            if (*(char *)(iVar6 + 0x16) == '\0') {
              DAT_001d1268 = DAT_001d1268 + 1;
            }
            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);
            if (cVar22 == '\x03') {
              *piVar13 = *(int *)(iVar3 + 0x14);
            }
            else {
              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);
            }
LAB_00067863:
            iVar6 = *(int *)(iVar6 + 0xc);
            if (iVar6 != -1) {
              if (DAT_001d1258 < iVar6) {
                DAT_001d1258 = iVar6;
              }
              if (iVar6 < DAT_001d125c) {
                DAT_001d125c = iVar6;
              }
              DAT_001d1264 = DAT_001d1264 + 1;
            }
          }
          else {
            pcVar15 = strchr(pcVar8,0x2e);
            if (pcVar15 != (char *)0x0) goto LAB_00067968;
            if (cVar22 == '\x01') {
              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";
              goto LAB_000679ab;
            }
            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);
            FUN_00034d20(uVar14,pcVar8,cVar22,3);
            puVar24 = DAT_001d1218;
          }
        }
        free(pcVar9);
        local_48 = (int *)((int)local_48 + 1);
        iVar6 = puVar24[0xb];
      } while ((int)local_48 < iVar6);
    }
joined_r0x00067b8d:
    if (iVar6 == 0) {
LAB_0006736e:
      bVar2 = *param_2;
      goto LAB_00067375;
    }
  }
  DAT_001d1260 = (char *)*puVar24;
  if (DAT_001d1260 == (char *)0x0) {
    DAT_001d1260 = (char *)*param_1;
    cVar22 = *DAT_001d1260;
    if (cVar22 != '\0') {
      bVar26 = false;
      pcVar9 = DAT_001d1260;
      pcVar8 = DAT_001d1260;
      do {
        bVar25 = cVar22 == '\\';
        bVar27 = cVar22 == '/';
        bVar28 = cVar22 == ':';
        pcVar9 = pcVar9 + 1;
        cVar22 = *pcVar9;
        if ((bVar25 || bVar27) || bVar28) {
          bVar26 = (bVar25 || bVar27) || bVar28;
          pcVar8 = pcVar9;
        }
      } while (cVar22 != '\0');
      if (bVar26) {
        DAT_001d1260 = pcVar8;
      }
    }
  }
  if ((DAT_001d1264 == 0) || (DAT_001d1258 <= DAT_001d126c)) {
    DAT_001d125c = 1;
    DAT_001d1258 = DAT_001d126c;
  }
  else {
    iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;
    if (iVar6 < DAT_001d125c) {
      DAT_001d125c = iVar6;
    }
  }
  DAT_001d1270 = (DAT_001d1258 - DAT_001d125c) + 1;
  puVar11 = (undefined4 *)xmalloc(DAT_001d1270 * 4);
  puVar24 = puVar11 + DAT_001d1270;
  DAT_001d1254 = puVar11;
  if (0 < DAT_001d1270) {
    do {
      *puVar11 = 0xffffffff;
      puVar11 = puVar11 + 1;
    } while (puVar24 != puVar11);
  }
  local_48 = DAT_001d1218;
  local_3c = DAT_001d125c;
  if ((int)DAT_001d1218[0xb] < 1) {
    local_44 = 0;
    iVar6 = DAT_001d125c;
    goto LAB_00067580;
  }
  local_44 = 0;
  local_40 = (char *)0x0;
  iVar3 = DAT_001d1218[0xc];
  do {
    iVar6 = (int)local_40 * 0x1c;
    puVar24 = (undefined4 *)(iVar3 + iVar6);
    if ((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))
    {
      iVar3 = local_48[0xc];
      puVar24 = (undefined4 *)(iVar6 + iVar3);
    }
    else {
      iVar18 = puVar24[3];
      if (iVar18 != -1) {
        iVar21 = iVar18 - local_3c;
        piVar13 = DAT_001d1254 + iVar21;
        if (*piVar13 != -1) {
          uVar14 = *puVar24;
          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);
          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);
          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);
          local_3c = DAT_001d125c;
          piVar13 = DAT_001d1254 + iVar21;
          local_48 = DAT_001d1218;
        }
        *piVar13 = (int)local_40;
      }
      iVar3 = local_48[0xc];
      puVar24 = (undefined4 *)(iVar6 + iVar3);
      if ((char *)puVar24[2] == (char *)0x0) {
        sVar7 = strlen((char *)*puVar24);
        local_44 = sVar7 + local_44 + 1;
      }
      else {
        sVar7 = strlen((char *)puVar24[2]);
        local_44 = sVar7 + local_44 + 1;
      }
    }
    if (*(char *)(puVar24 + 6) != '\0') {
      sVar7 = strlen((char *)puVar24[1]);
      local_44 = local_44 + 1 + sVar7;
    }
    pvVar4 = DAT_001d1274;
    puVar24 = DAT_001d1254;
    local_40 = (char *)((int)local_40 + 1);
  } while ((int)local_40 < local_48[0xb]);
  iVar6 = local_3c;
  if (local_48[0xb] < 1) goto LAB_00067580;
  iVar18 = 0;
  piVar13 = (int *)(iVar3 + 0xc);
  do {
    if (*(int *)((int)pvVar4 + iVar18 * 4) == 0) {
      if ((char)piVar13[3] != '\0') {
        iVar3 = *piVar13;
        goto joined_r0x000676c3;
      }
    }
    else {
      iVar3 = *piVar13;
joined_r0x000676c3:
      if (iVar3 == -1) {
        piVar17 = puVar24 + (iVar6 - local_3c);
        if (*piVar17 != -1) {
          iVar6 = iVar6 + 1;
          piVar17 = puVar24 + (iVar6 - local_3c);
          while (*piVar17 != -1) {
            iVar6 = iVar6 + 1;
            piVar17 = piVar17 + 1;
          }
        }
        *piVar17 = iVar18;
        *piVar13 = iVar6;
      }
    }
    iVar18 = iVar18 + 1;
    piVar13 = piVar13 + 7;
    if (local_48[0xb] <= iVar18) {
LAB_00067580:
      iVar3 = DAT_001d1258;
      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {
        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);
        if (iVar6 <= iVar3) {
          iVar6 = iVar3;
        }
        FUN_00034d20(uVar14,iVar6);
      }
      iVar6 = DAT_001d1268;
      sVar7 = strlen(DAT_001d1260);
      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;
      FUN_00061a40();
      FUN_00066c30(DAT_001d12a0);
      return;
    }
  } while( true );
code_r0x00066da5:
  piVar13 = (int *)*piVar13;
  **(uint **)(iVar6 + 0x14) = *puVar1;
  goto joined_r0x00066d64;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00017b80
ADD EBX,0x168357
SUB ESP,0x48
MOV EAX,dword ptr [ESP + 0x5c]
MOV EAX,dword ptr [EAX + 0x4]
PUSH dword ptr [EAX]
CALL 0x00063a00
POP EBP
PUSH dword ptr [ESP + 0x5c]
CALL 0x00066c30
MOV EAX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00067b48
MOV EAX,dword ptr [ESP + 0x54]
MOV ESI,dword ptr [EAX + 0x3c]
LEA EAX,[EBX + 0xfffded05]
MOV dword ptr [ESP + 0x4],EAX
TEST ESI,ESI
JZ 0x00066d59
SUB ESP,0x8
PUSH dword ptr [ESP + 0xc]
PUSH ESI
CALL 0x00016540
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x00066d4f
MOV ECX,dword ptr [EAX + 0x2c]
SUB ESP,0xc
PUSH ECX
MOV dword ptr [ESP + 0x18],ECX
CALL 0x00016dc8
ADD ESP,0xc
MOV ECX,dword ptr [ESP + 0xc]
MOV EDI,EAX
MOV EAX,ECX
CDQ
PUSH EDX
PUSH ECX
PUSH 0x0
PUSH 0x0
PUSH EDI
PUSH EBP
PUSH ESI
CALL 0x000162f0
ADD ESP,0x1c
MOV ECX,dword ptr [ESP + 0xc]
PUSH ECX
PUSH EDI
PUSH dword ptr [EBX + 0x2218]
CALL 0x0005a570
MOV dword ptr [ESP],EDI
CALL 0x00016db0
ADD ESP,0x10
MOV ESI,dword ptr [ESI + 0x9c]
TEST ESI,ESI
JNZ 0x00066cf0
MOV EAX,dword ptr [EBX + 0x2218]
MOV ESI,dword ptr [EAX + 0x48]
TEST ESI,ESI
JNZ 0x00066d76
JMP 0x00066db0
MOV ESI,dword ptr [ESI]
TEST ESI,ESI
JZ 0x00066db0
SUB ESP,0xc
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH dword ptr [ESI + 0x4]
MOV EAX,dword ptr [ESP + 0x70]
PUSH dword ptr [EAX + 0x20]
CALL 0x00016590
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00066d70
CMP byte ptr [EAX + 0xc],0x5
JNZ 0x00066d70
MOV EAX,dword ptr [EAX + 0x14]
MOV EDX,dword ptr [ESI + 0x8]
CMP dword ptr [EAX],EDX
JNC 0x00066d70
MOV ESI,dword ptr [ESI]
MOV dword ptr [EAX],EDX
TEST ESI,ESI
JNZ 0x00066d76
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x54]
MOV EDX,dword ptr [EBX + 0x2214]
MOVZX EAX,byte ptr [EAX]
TEST AL,0x2
JNZ 0x00066f98
MOV EBP,dword ptr [EBX + 0x2218]
MOV EDI,dword ptr [EBP + 0x2c]
MOV dword ptr [ESP + 0x4],EBP
TEST EDI,EDI
JNZ 0x000671e0
TEST EDX,EDX
JZ 0x00067375
MOV ESI,dword ptr [EBX + 0x2210]
TEST ESI,ESI
JNZ 0x00067375
MOV EAX,dword ptr [ESP + 0x54]
MOV EAX,dword ptr [EAX + 0x3c]
MOV dword ptr [ESP + 0x8],EAX
TEST EAX,EAX
JZ 0x00066fbb
MOV EAX,dword ptr [EBX + 0xffffffbc]
ADD EAX,0xc0
MOV dword ptr [ESP + 0x1c],EAX
LEA ESI,[ESI]
SUB ESP,0xc
PUSH dword ptr [ESP + 0x14]
CALL 0x00016180
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00067b60
MOV EAX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [EAX + 0x78]
MOV EAX,dword ptr [EAX + 0x7c]
TEST EAX,EAX
JLE 0x00067678
LEA EAX,[EDX + EAX*0x4]
MOV dword ptr [ESP + 0x4],EDX
MOV dword ptr [ESP + 0xc],EAX
LEA EAX,[EBX + 0x23e0]
MOV dword ptr [ESP + 0x10],EAX
MOV dword ptr [ESP + 0x14],EAX
JMP 0x00066f5b
MOV EDI,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EDI + 0x98]
TEST EDX,EDX
JZ 0x00066e8b
SUB ESP,0x8
PUSH dword ptr [EAX + 0x4]
PUSH EDX
CALL 0x00016770
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00066f48
MOV EAX,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [EAX]
MOV EBP,dword ptr [EAX + 0x4]
LEA EDX,[EBX + 0xfffdeaf4]
MOV ECX,0x6
MOV EDI,EDX
MOV dword ptr [ESP + 0x18],EDX
MOV ESI,EBP
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00066f48
SUB ESP,0xc
PUSH EBP
CALL 0x00016760
ADD EAX,0x7
MOV dword ptr [ESP],EAX
CALL 0x00016dc8
PUSH EBP
MOV EDX,dword ptr [ESP + 0x2c]
MOV ESI,EAX
LEA EAX,[EBX + 0xffeaa835]
PUSH EDX
PUSH EAX
PUSH ESI
CALL 0x00016af0
ADD ESP,0x14
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH ESI
MOV EAX,dword ptr [ESP + 0x70]
PUSH dword ptr [EAX + 0x20]
CALL 0x00016590
ADD ESP,0x14
PUSH ESI
MOV EDI,EAX
CALL 0x00016db0
ADD ESP,0x10
TEST EDI,EDI
JZ 0x00066f07
CMP byte ptr [EDI + 0xc],0x3
JZ 0x00066f48
MOV EAX,dword ptr [EBX + 0x227c]
MOV EDI,dword ptr [EAX + 0x14]
TEST EDI,EDI
JZ 0x00066f1f
XOR EAX,EAX
CMP byte ptr [EBP],0x5f
SETZ AL
ADD EBP,EAX
SUB ESP,0xc
MOV EDX,dword ptr [EBX + 0x2218]
PUSH EBP
MOV EAX,dword ptr [ESP + 0x18]
LEA ECX,[EDX + 0x30]
ADD EDX,0x2c
CALL 0x00062820
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00067618
LEA ESI,[ESI]
NOP
ADD dword ptr [ESP + 0x4],0x4
MOV EAX,dword ptr [ESP + 0x4]
CMP dword ptr [ESP + 0xc],EAX
JZ 0x00067678
MOV EAX,dword ptr [ESP + 0x4]
MOV EDI,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [EAX]
CMP dword ptr [EAX + 0x14],EDI
JZ 0x00066f48
MOV EDX,dword ptr [EAX + 0x10]
TEST DL,0x2
JNZ 0x00066e60
TEST EDX,EDX
JNZ 0x00066f48
MOV ECX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ECX + 0x98]
TEST EDX,EDX
JNZ 0x00066e6e
JMP 0x00066e8b
TEST EDX,EDX
JNZ 0x00066fad
MOV EAX,dword ptr [EBX + 0x2218]
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,dword ptr [EAX + 0x2c]
TEST EAX,EAX
JNZ 0x00066fd0
MOV ECX,dword ptr [EBX + 0x2210]
TEST ECX,ECX
JZ 0x00066df0
MOV EBP,dword ptr [EBX + 0x2218]
MOV EAX,dword ptr [EBP + 0x2c]
MOV dword ptr [ESP + 0x4],EBP
TEST EAX,EAX
JZ 0x0006736e
MOV ECX,dword ptr [EBX + 0x220c]
TEST ECX,ECX
JZ 0x000671fd
LEA EDI,[EBX + 0xfffdf3c0]
MOV dword ptr [ESP + 0xc],0x0
XOR EBP,EBP
MOV EDX,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x10],EDI
TEST EAX,EAX
JLE 0x000671fd
NOP
IMUL EDI,EBP,0x1c
MOV EAX,dword ptr [EDX + 0x30]
MOV ESI,dword ptr [EAX + EDI*0x1]
MOVZX ECX,byte ptr [ESI]
CMP CL,0x3f
MOV byte ptr [ESP + 0x8],CL
JZ 0x00067075
MOV dword ptr [ESP + 0x4],EDX
SUB ESP,0x8
PUSH 0x40
PUSH ESI
CALL 0x00016730
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x4]
TEST EAX,EAX
JZ 0x00067075
SUB ESP,0xc
XOR EAX,EAX
MOVZX ECX,byte ptr [ESP + 0x14]
CMP CL,0x40
SETZ AL
ADD ESI,EAX
PUSH ESI
CALL 0x000164f0
MOV ESI,EAX
POP EAX
POP EDX
PUSH 0x40
PUSH ESI
CALL 0x00016a40
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00067ba0
MOV byte ptr [EAX],0x0
MOV EDX,dword ptr [EBX + 0x2218]
MOV dword ptr [ESP + 0xc],0x1
MOV EAX,dword ptr [EDX + 0x30]
MOV dword ptr [EAX + EDI*0x1],ESI
MOV EAX,dword ptr [EDX + 0x2c]
ADD EBP,0x1
CMP EBP,EAX
JL 0x00067000
MOV ESI,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x4],EDX
TEST ESI,ESI
JNZ 0x00067b18
MOV ECX,dword ptr [EBX + 0x2208]
TEST ECX,ECX
JZ 0x00067212
TEST EAX,EAX
JLE 0x00067c38
LEA EAX,[EBX + 0xfffdeaf4]
MOV dword ptr [ESP + 0xc],0x0
MOV EDX,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[ESP + 0x2c]
MOV dword ptr [ESP + 0x8],0x0
MOV dword ptr [ESP + 0x14],EAX
JMP 0x00067101
MOV EAX,dword ptr [ESP + 0x2c]
MOV EDX,dword ptr [EBX + 0x2218]
TEST EAX,EAX
JNZ 0x000671bf
LEA ESI,[ESI]
ADD dword ptr [ESP + 0x8],0x1
MOV EAX,dword ptr [EDX + 0x2c]
MOV ECX,dword ptr [ESP + 0x8]
ADD dword ptr [ESP + 0xc],0x1c
CMP ECX,EAX
JGE 0x00067ae0
MOV EAX,dword ptr [EDX + 0x30]
MOV ECX,dword ptr [ESP + 0xc]
MOV EDI,dword ptr [ESP + 0x10]
MOV EBP,dword ptr [EAX + ECX*0x1]
MOV ECX,0x6
MOV ESI,EBP
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x000670e8
MOV dword ptr [ESP + 0x4],EDX
SUB ESP,0x8
PUSH 0x40
PUSH EBP
CALL 0x00016730
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x4]
TEST EAX,EAX
JZ 0x000670e8
MOV dword ptr [ESP + 0x2c],0x1
XOR EAX,EAX
SUB ESP,0xc
CMP byte ptr [EBP],0x40
SETZ AL
ADD EBP,EAX
PUSH EBP
CALL 0x000164f0
MOV ESI,EAX
POP EAX
POP EDX
PUSH 0x40
PUSH ESI
CALL 0x00016730
MOV EDX,dword ptr [EBX + 0x2218]
MOV byte ptr [EAX],0x0
XOR EAX,EAX
LEA ECX,[EDX + 0x30]
ADD EDX,0x2c
MOV dword ptr [ESP],ESI
CALL 0x00062820
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000670d0
MOV EAX,dword ptr [EBX + 0x2218]
SUB ESP,0x8
PUSH dword ptr [ESP + 0x1c]
MOV EDX,dword ptr [EAX + 0x30]
PUSH 0x0
PUSH -0x1
MOV EDI,dword ptr [ESP + 0x20]
PUSH dword ptr [EDX + EDI*0x1 + 0x4]
PUSH ESI
PUSH EAX
CALL 0x00058c90
ADD ESP,0x20
MOV EAX,dword ptr [ESP + 0x2c]
MOV EDX,dword ptr [EBX + 0x2218]
TEST EAX,EAX
JZ 0x000670e8
SUB ESP,0xc
PUSH ESI
CALL 0x00016db0
ADD ESP,0x10
MOV EDX,dword ptr [EBX + 0x2218]
JMP 0x000670e8
TEST EDX,EDX
JNZ 0x00066fad
MOV EAX,dword ptr [ESP + 0x4]
MOV ECX,dword ptr [EBX + 0x220c]
MOV EAX,dword ptr [EAX + 0x2c]
TEST ECX,ECX
JNZ 0x00066fde
MOV EAX,dword ptr [ESP + 0x4]
MOV ECX,dword ptr [EBX + 0x2208]
MOV EAX,dword ptr [EAX + 0x2c]
TEST ECX,ECX
JNZ 0x0006709d
MOV ESI,dword ptr [ESP + 0x4]
MOV EDI,dword ptr [ESI + 0x30]
MOV dword ptr [ESP + 0x8],EDI
TEST EAX,EAX
JLE 0x00067c38
LEA EAX,[EBX + 0xfffdf42c]
MOV EBP,EDI
MOV dword ptr [ESP + 0x4],0x0
XOR EDI,EDI
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBX + 0xfffdf3f0]
MOV dword ptr [ESP + 0x14],EAX
JMP 0x0006731b
MOV EAX,dword ptr [EBP]
SUB ESP,0x8
MOV dword ptr [ESP + 0x14],EAX
PUSH dword ptr [EBP + -0x1c]
PUSH EAX
CALL 0x000160c0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00067327
IMUL EAX,EDI,0x1c
MOV ECX,dword ptr [ESP + 0x8]
LEA ESI,[ECX + EAX*0x1 + -0x1c]
MOV EAX,dword ptr [EBX + 0x2204]
MOV ECX,dword ptr [ESI + 0xc]
CMP ECX,-0x1
JZ 0x00067740
MOV EDX,dword ptr [EBP + 0xc]
CMP EDX,-0x1
JZ 0x00067740
CMP ECX,EDX
JZ 0x00067740
TEST EAX,EAX
JNZ 0x00067bd8
MOV dword ptr [ESI + 0xc],EDX
MOVZX EAX,byte ptr [EBP + 0x14]
OR byte ptr [ESI + 0x14],AL
MOVZX EAX,byte ptr [EBP + 0x15]
OR byte ptr [ESI + 0x15],AL
MOVZX EAX,byte ptr [EBP + 0x16]
OR byte ptr [ESI + 0x16],AL
MOVZX EAX,byte ptr [EBP + 0x17]
OR byte ptr [ESI + 0x17],AL
MOV EAX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JZ 0x000672da
SUB ESP,0xc
PUSH EAX
CALL 0x00016db0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0x4]
TEST EAX,EAX
JZ 0x000672ed
SUB ESP,0xc
PUSH EAX
CALL 0x00016db0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0x8]
TEST EAX,EAX
JZ 0x00067300
SUB ESP,0xc
PUSH EAX
CALL 0x00016db0
ADD ESP,0x10
MOV ESI,dword ptr [EBX + 0x2218]
ADD dword ptr [ESP + 0x4],0x1
ADD EBP,0x1c
MOV EAX,dword ptr [ESP + 0x4]
CMP EAX,dword ptr [ESI + 0x2c]
JGE 0x00067760
MOV EAX,dword ptr [ESP + 0x4]
TEST EAX,EAX
JNZ 0x00067250
CMP EDI,dword ptr [ESP + 0x4]
JZ 0x0006735d
MOV EDX,dword ptr [EBP]
IMUL EAX,EDI,0x1c
ADD EAX,dword ptr [ESP + 0x8]
MOV dword ptr [EAX],EDX
MOV EDX,dword ptr [EBP + 0x4]
MOV dword ptr [EAX + 0x4],EDX
MOV EDX,dword ptr [EBP + 0x8]
MOV dword ptr [EAX + 0x8],EDX
MOV EDX,dword ptr [EBP + 0xc]
MOV dword ptr [EAX + 0xc],EDX
MOV EDX,dword ptr [EBP + 0x10]
MOV dword ptr [EAX + 0x10],EDX
MOV EDX,dword ptr [EBP + 0x14]
MOV dword ptr [EAX + 0x14],EDX
MOV EDX,dword ptr [EBP + 0x18]
MOV dword ptr [EAX + 0x18],EDX
ADD EDI,0x1
JMP 0x00067306
MOV EBP,EDI
TEST EAX,EAX
JNZ 0x0006737d
MOV EAX,dword ptr [ESP + 0x54]
MOVZX EAX,byte ptr [EAX]
TEST AL,0x1
JZ 0x00067609
MOV EAX,dword ptr [EBP]
TEST EAX,EAX
JZ 0x00067a68
MOV dword ptr [EBX + 0x2260],EAX
MOV EDX,dword ptr [EBX + 0x2264]
MOV EAX,dword ptr [EBX + 0x226c]
TEST EDX,EDX
JZ 0x000673ac
MOV ECX,dword ptr [EBX + 0x2258]
CMP ECX,EAX
JG 0x00067af0
MOV dword ptr [EBX + 0x225c],0x1
MOV EDX,0x1
MOV dword ptr [EBX + 0x2258],EAX
SUB EAX,EDX
SUB ESP,0xc
ADD EAX,0x1
MOV dword ptr [EBX + 0x2270],EAX
SHL EAX,0x2
PUSH EAX
CALL 0x00016dc8
MOV EDX,dword ptr [EBX + 0x2270]
ADD ESP,0x10
MOV dword ptr [EBX + 0x2254],EAX
LEA ECX,[EAX + EDX*0x4]
TEST EDX,EDX
JLE 0x000673fd
NOP
MOV dword ptr [EAX],0xffffffff
ADD EAX,0x4
CMP ECX,EAX
JNZ 0x000673f0
MOV EAX,dword ptr [EBX + 0x2218]
MOV ECX,dword ptr [EBX + 0x225c]
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,dword ptr [EAX + 0x2c]
MOV dword ptr [ESP + 0x10],ECX
TEST EAX,EAX
JLE 0x00067570
MOV EAX,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x8],0x0
MOV dword ptr [ESP + 0xc],0x0
MOV EBP,dword ptr [EAX + 0x30]
LEA EAX,[EBX + 0xfffdf4e0]
MOV dword ptr [ESP + 0x18],EAX
JMP 0x0006751f
MOV EAX,dword ptr [ECX + 0xc]
CMP EAX,-0x1
JZ 0x000674be
MOV ESI,EAX
MOV EDX,dword ptr [EBX + 0x2254]
SUB ESI,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x14],EAX
SHL ESI,0x2
ADD EDX,ESI
MOV EAX,dword ptr [EDX]
CMP EAX,-0x1
JZ 0x000674b8
MOV EDX,dword ptr [ECX]
IMUL EAX,EAX,0x1c
SUB ESP,0x4
MOV dword ptr [ESP + 0x8],EDX
MOV EBP,dword ptr [EBP + EAX*0x1]
PUSH 0x5
PUSH dword ptr [ESP + 0x20]
PUSH 0x0
CALL 0x00016310
PUSH EBP
MOV EDX,dword ptr [ESP + 0x18]
PUSH EDX
PUSH dword ptr [ESP + 0x2c]
PUSH EAX
CALL 0x00034d20
MOV EAX,dword ptr [EBX + 0x225c]
ADD ESI,dword ptr [EBX + 0x2254]
MOV EDX,ESI
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [EBX + 0x2218]
ADD ESP,0x20
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [EDX],EAX
MOV EAX,dword ptr [ESP + 0x4]
MOV ESI,dword ptr [ESP + 0x8]
MOV EBP,dword ptr [EAX + 0x30]
ADD ESI,0x1
ADD EDI,EBP
MOV EAX,dword ptr [EDI + 0x8]
TEST EAX,EAX
JZ 0x00067550
SUB ESP,0xc
PUSH EAX
CALL 0x00016760
ADD ESP,0x10
ADD EAX,ESI
MOV dword ptr [ESP + 0x8],EAX
CMP byte ptr [EDI + 0x18],0x0
JZ 0x00067507
SUB ESP,0xc
PUSH dword ptr [EDI + 0x4]
CALL 0x00016760
ADD ESP,0x10
MOV EDI,dword ptr [ESP + 0x8]
LEA EAX,[EDI + EAX*0x1 + 0x1]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x4]
ADD dword ptr [ESP + 0xc],0x1
MOV EDI,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x2c]
CMP EDI,EAX
JGE 0x00067698
MOV ESI,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EBX + 0x2274]
IMUL EDI,ESI,0x1c
MOV EAX,dword ptr [EAX + ESI*0x4]
LEA ECX,[EBP + EDI*0x1]
TEST EAX,EAX
JNZ 0x00067448
CMP byte ptr [ECX + 0x18],0x0
JNZ 0x00067448
MOV EAX,dword ptr [ESP + 0x4]
MOV EBP,dword ptr [EAX + 0x30]
ADD EDI,EBP
JMP 0x000674e7
SUB ESP,0xc
PUSH dword ptr [EDI]
CALL 0x00016760
ADD ESP,0x10
ADD EAX,ESI
MOV dword ptr [ESP + 0x8],EAX
JMP 0x000674e7
MOV dword ptr [ESP + 0x8],0x0
MOV ESI,ECX
LEA ESI,[ESI]
MOV EDI,dword ptr [EBX + 0x2258]
CMP EDI,0xffff
JG 0x00067596
CMP ESI,0xffff
JLE 0x000675ba
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdf510]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016310
CMP EDI,ESI
POP EDX
POP ECX
CMOVGE ESI,EDI
PUSH ESI
PUSH EAX
CALL 0x00034d20
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [EBX + 0x2260]
MOV ESI,dword ptr [EBX + 0x2268]
CALL 0x00016760
MOV EDX,dword ptr [EBX + 0x2270]
ADD ESP,0x10
MOV EDI,dword ptr [ESP + 0x8]
LEA EDX,[ESI + EDX*0x1 + 0xa]
LEA EDX,[ESI + EDX*0x2]
LEA EDX,[EDI + EDX*0x2 + 0x1]
ADD EDX,EAX
MOV EAX,0x1
MOV dword ptr [EBX + 0x228c],EDX
CALL 0x00061a40
SUB ESP,0xc
PUSH dword ptr [EBX + 0x22a0]
CALL 0x00066c30
ADD ESP,0x10
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [ESP + 0x2c],0x0
SUB ESP,0x8
LEA EAX,[ESP + 0x34]
PUSH EAX
PUSH 0x0
PUSH -0x1
PUSH 0x0
PUSH EBP
PUSH dword ptr [EBX + 0x2218]
CALL 0x00058c90
ADD ESP,0x20
MOV ESI,dword ptr [ESP + 0x2c]
TEST ESI,ESI
JNZ 0x00066f48
MOV ECX,dword ptr [ESP + 0x4]
ADD dword ptr [ESP + 0x4],0x4
MOV EDX,dword ptr [ECX]
MOV EDX,dword ptr [EDX + 0x10]
SHR EDX,0x3
XOR EDX,0x1
AND EDX,0x1
MOV byte ptr [EAX + 0x17],DL
MOV EAX,dword ptr [ESP + 0x4]
CMP dword ptr [ESP + 0xc],EAX
JNZ 0x00066f5b
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x9c]
MOV dword ptr [ESP + 0x8],EAX
TEST EAX,EAX
JNZ 0x00066e18
JMP 0x00066fbb
TEST EAX,EAX
JLE 0x00067c41
MOV EAX,dword ptr [EBX + 0x2274]
MOV ESI,dword ptr [ESP + 0x10]
XOR EDX,EDX
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,dword ptr [EBX + 0x2254]
MOV dword ptr [ESP + 0xc],EAX
LEA EAX,[EBP + 0xc]
JMP 0x000676d8
CMP dword ptr [EAX],-0x1
JZ 0x000676f0
MOV EDI,dword ptr [ESP + 0x4]
ADD EDX,0x1
ADD EAX,0x1c
CMP EDX,dword ptr [EDI + 0x2c]
JGE 0x00067580
MOV EDI,dword ptr [ESP + 0x14]
MOV EDI,dword ptr [EDI + EDX*0x4]
TEST EDI,EDI
JNZ 0x000676c0
CMP byte ptr [EAX + 0xc],0x0
JZ 0x000676c5
CMP dword ptr [EAX],-0x1
JNZ 0x000676c5
NOP
MOV EBP,dword ptr [ESP + 0xc]
MOV ECX,ESI
SUB ECX,dword ptr [ESP + 0x10]
LEA EBP,[EBP + ECX*0x4]
CMP dword ptr [EBP],-0x1
JZ 0x00067730
LEA EDI,[ESI + 0x1]
MOV EBP,dword ptr [ESP + 0xc]
MOV ECX,EDI
SUB ECX,dword ptr [ESP + 0x10]
LEA ECX,[EBP + ECX*0x4]
JMP 0x00067723
ADD EDI,0x1
MOV EBP,ECX
ADD ECX,0x4
MOV ESI,EDI
CMP dword ptr [ECX + -0x4],-0x1
JNZ 0x00067720
MOV dword ptr [EBP],EDX
MOV dword ptr [EAX],ESI
JMP 0x000676c5
TEST EAX,EAX
JNZ 0x00067a30
MOV EDX,dword ptr [EBP + 0xc]
CMP EDX,-0x1
JNZ 0x000672a7
JMP 0x000672aa
MOV dword ptr [ESP + 0x4],ESI
LEA EAX,[EDI*0x8 + 0x0]
MOV ECX,dword ptr [ESP + 0x4]
SUB ESP,0xc
MOV dword ptr [ECX + 0x2c],EDI
PUSH EAX
CALL 0x00016dc8
MOV dword ptr [EBX + 0x2278],EAX
MOV EAX,dword ptr [EBX + 0x2218]
MOV EAX,dword ptr [EAX + 0x2c]
SHL EAX,0x2
MOV dword ptr [ESP],EAX
CALL 0x00016dc8
MOV EBP,dword ptr [EBX + 0x2218]
ADD ESP,0xc
MOV dword ptr [EBX + 0x2274],EAX
MOV ECX,dword ptr [EBP + 0x2c]
LEA EDX,[ECX*0x4 + 0x0]
PUSH EDX
PUSH 0x0
PUSH EAX
CALL 0x00016860
MOV EAX,dword ptr [EBP + 0x2c]
ADD ESP,0x10
MOV dword ptr [EBX + 0x2258],0x0
MOV dword ptr [EBX + 0x225c],0x10000
MOV dword ptr [EBX + 0x226c],0x0
MOV dword ptr [EBX + 0x2268],0x0
MOV dword ptr [EBX + 0x2264],0x0
TEST EAX,EAX
JLE 0x0006736a
LEA EAX,[EBX + 0xfffdf4b4]
MOV dword ptr [ESP + 0x4],0x0
MOV EDI,EBP
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBX + 0xfffdf47c]
MOV dword ptr [ESP + 0xc],EAX
JMP 0x000678ae
MOV EDI,dword ptr [EBX + 0x2218]
ADD dword ptr [EBX + 0x226c],0x1
ADD ESI,dword ptr [EDI + 0x30]
CMP byte ptr [ESI + 0x16],0x0
JNZ 0x0006783d
ADD dword ptr [EBX + 0x2268],0x1
MOV EAX,dword ptr [EAX + 0x14]
MOV ECX,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [EBX + 0x2274]
LEA EAX,[EAX + ECX*0x4]
MOV ECX,dword ptr [ESP + 0x8]
CMP DL,0x3
JZ 0x00067a28
MOV EDX,dword ptr [ECX + 0x4]
MOV dword ptr [EAX],EDX
MOV EAX,dword ptr [ESI + 0xc]
CMP EAX,-0x1
JZ 0x0006788e
CMP EAX,dword ptr [EBX + 0x2258]
JLE 0x00067879
MOV dword ptr [EBX + 0x2258],EAX
CMP EAX,dword ptr [EBX + 0x225c]
JGE 0x00067887
MOV dword ptr [EBX + 0x225c],EAX
ADD dword ptr [EBX + 0x2264],0x1
SUB ESP,0xc
PUSH EBP
CALL 0x00016db0
ADD dword ptr [ESP + 0x14],0x1
MOV EAX,dword ptr [EDI + 0x2c]
MOV ECX,dword ptr [ESP + 0x14]
ADD ESP,0x10
CMP ECX,EAX
JGE 0x00067368
IMUL ESI,dword ptr [ESP + 0x4],0x1c
MOV EAX,dword ptr [EDI + 0x30]
SUB ESP,0xc
MOV EDI,dword ptr [EAX + ESI*0x1 + 0x4]
PUSH EDI
CALL 0x00028f70
MOV dword ptr [ESP],EDI
CALL 0x00016760
ADD EAX,0x2
MOV dword ptr [ESP],EAX
CALL 0x00016dc8
ADD ESP,0x10
MOV EBP,EAX
MOV EAX,dword ptr [EBX + 0x227c]
MOV EAX,dword ptr [EAX + 0x14]
TEST EAX,EAX
JZ 0x000679d0
CMP byte ptr [EDI],0x40
JZ 0x000679d0
SUB ESP,0x8
LEA EAX,[EBP + 0x1]
MOV byte ptr [EBP],0x5f
PUSH EDI
PUSH EAX
CALL 0x00016530
MOV dword ptr [ESP],EBP
CALL 0x000164f0
MOV dword ptr [ESP],EAX
CALL 0x00028f70
ADD ESP,0x10
SUB ESP,0xc
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH EBP
MOV EAX,dword ptr [ESP + 0x70]
PUSH dword ptr [EAX + 0x20]
CALL 0x00016590
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00067990
MOVZX EDX,byte ptr [EAX + 0xc]
LEA ECX,[EDX + -0x3]
AND ECX,0xfd
JZ 0x00067820
MOV byte ptr [ESP + 0x8],DL
SUB ESP,0x8
PUSH 0x2e
PUSH EDI
CALL 0x00016730
ADD ESP,0x10
MOVZX EDX,byte ptr [ESP + 0x8]
TEST EAX,EAX
JZ 0x000679e8
MOV EDI,dword ptr [EBX + 0x2218]
ADD dword ptr [EBX + 0x226c],0x1
ADD ESI,dword ptr [EDI + 0x30]
CMP byte ptr [ESI + 0x16],0x0
JNZ 0x00067985
ADD dword ptr [EBX + 0x2268],0x1
MOV byte ptr [ESI + 0x18],0x1
JMP 0x00067863
SUB ESP,0x8
PUSH 0x2e
PUSH EDI
CALL 0x00016730
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00067968
SUB ESP,0x4
PUSH 0x5
PUSH dword ptr [ESP + 0x18]
PUSH 0x0
CALL 0x00016310
POP ECX
POP ESI
PUSH EDI
PUSH EAX
CALL 0x00034d20
MOV EDI,dword ptr [EBX + 0x2218]
ADD ESP,0x10
JMP 0x0006788e
SUB ESP,0x8
PUSH EDI
PUSH EBP
CALL 0x00016530
ADD ESP,0x10
JMP 0x00067919
CMP DL,0x1
JZ 0x00067c20
MOV byte ptr [ESP + 0x8],DL
SUB ESP,0x4
PUSH 0x5
PUSH dword ptr [ESP + 0x14]
PUSH 0x0
CALL 0x00016310
PUSH 0x3
MOVZX EDX,byte ptr [ESP + 0x1c]
PUSH EDX
PUSH EDI
PUSH EAX
CALL 0x00034d20
MOV EDI,dword ptr [EBX + 0x2218]
ADD ESP,0x20
JMP 0x0006788e
MOV dword ptr [EAX],ECX
JMP 0x00067863
MOV EDX,dword ptr [ESI]
SUB ESP,0x4
MOV dword ptr [ESP + 0x10],EDX
PUSH 0x5
PUSH dword ptr [ESP + 0x18]
PUSH 0x0
CALL 0x00016310
POP EDX
POP ECX
MOV EDX,dword ptr [ESP + 0x14]
PUSH EDX
PUSH EAX
CALL 0x00034d20
MOV EAX,dword ptr [EBP]
MOV dword ptr [ESP + 0x1c],EAX
ADD ESP,0x10
JMP 0x00067748
MOV EAX,dword ptr [ESP + 0x50]
MOV EDX,dword ptr [EAX]
MOVZX EDI,byte ptr [EDX]
MOV dword ptr [EBX + 0x2260],EDX
MOV EAX,EDI
TEST AL,AL
JZ 0x0006738e
XOR ECX,ECX
MOV ESI,EDX
MOV byte ptr [ESP + 0x4],CL
LEA ESI,[ESI]
MOV EAX,EDI
MOV ECX,EDI
CMP AL,0x5c
SETZ AL
CMP CL,0x2f
SETZ CL
MOV EBP,ECX
MOV ECX,EDI
OR EAX,EBP
CMP CL,0x3a
SETZ CL
ADD EDX,0x1
MOVZX EDI,byte ptr [EDX]
OR AL,CL
MOVZX ECX,byte ptr [ESP + 0x4]
CMOVNZ ESI,EDX
CMOVNZ ECX,EAX
MOV EAX,EDI
MOV byte ptr [ESP + 0x4],CL
TEST AL,AL
JNZ 0x00067a90
TEST CL,CL
JZ 0x0006738e
MOV dword ptr [EBX + 0x2260],ESI
JMP 0x0006738e
MOV dword ptr [ESP + 0x4],EDX
JMP 0x00067212
MOV ESI,ECX
MOV EDX,dword ptr [EBX + 0x225c]
SUB ESI,EAX
MOV EAX,ECX
ADD ESI,0x1
CMP ESI,EDX
JGE 0x000673c1
MOV dword ptr [EBX + 0x225c],ESI
MOV EDX,ESI
JMP 0x000673c1
LEA EDX,[EBX + 0xffe92720]
PUSH EDX
PUSH 0x1c
PUSH EAX
MOV EAX,dword ptr [ESP + 0x10]
PUSH dword ptr [EAX + 0x30]
CALL 0x00016b80
MOV EAX,dword ptr [EBX + 0x2218]
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,dword ptr [EAX + 0x2c]
ADD ESP,0x10
JMP 0x0006708f
CALL 0x000589a0
MOV dword ptr [EBX + 0x2218],EAX
JMP 0x00066cdb
SUB ESP,0x4
LEA EAX,[EBX + 0xffead370]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016310
POP EBP
POP EDX
PUSH dword ptr [ESP + 0x10]
PUSH EAX
CALL 0x00034d20
MOV EBP,dword ptr [EBX + 0x2218]
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0x2c]
TEST EAX,EAX
JNZ 0x0006737d
JMP 0x0006736e
MOV EAX,dword ptr [EBX + 0x2218]
SUB ESP,0x4
MOV EAX,dword ptr [EAX + 0x30]
MOV EDX,dword ptr [EAX + EDI*0x1]
MOV dword ptr [ESP + 0x8],EDX
PUSH 0x5
PUSH dword ptr [ESP + 0x18]
PUSH 0x0
CALL 0x00016310
POP EDX
POP ECX
MOV EDX,dword ptr [ESP + 0xc]
PUSH EDX
PUSH EAX
CALL 0x00034d20
ADD ESP,0x10
JMP 0x00067061
MOV EAX,dword ptr [ESI]
MOV dword ptr [ESP + 0x1c],ECX
SUB ESP,0x4
MOV dword ptr [ESP + 0x1c],EDX
MOV dword ptr [ESP + 0x10],EAX
PUSH 0x5
PUSH dword ptr [ESP + 0x1c]
PUSH 0x0
CALL 0x00016310
MOV EDX,dword ptr [ESP + 0x28]
PUSH EDX
MOV ECX,dword ptr [ESP + 0x30]
PUSH ECX
PUSH dword ptr [ESP + 0x24]
PUSH EAX
CALL 0x00034d20
MOV EAX,dword ptr [EBP]
MOV dword ptr [ESP + 0x2c],EAX
ADD ESP,0x20
JMP 0x00067748
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdf450]
PUSH 0x5
PUSH EAX
JMP 0x000679ab
XOR EAX,EAX
XOR EDI,EDI
JMP 0x0006776b
MOV ESI,dword ptr [ESP + 0x10]
JMP 0x00067580
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n\nvoid FUN_00066ca0(undefined4 *param_1,byte *param_2)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  int iVar3;\n  void *pvVar4;\n  undefined *puVar5;\n  int iVar6;\n  size_t sVar7;\n  char *pcVar8;\n  char *pcVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined4 uVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  char *pcVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int iVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  int iVar21;\n  char cVar22;\n  byte *pbVar23;\n  undefined4 *puVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  bool bVar28;\n  byte bVar29;\n  int *local_48;\n  uint local_44;\n  char *local_40;\n  int local_3c;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar29 = 0;\n  uStack_14 = 0x66ca9;\n  FUN_00063a00(*(undefined4 *)param_1[1]);\n  FUN_00066c30(param_1);\n  if (DAT_001d1218 == (undefined4 *)0x0) {\n    DAT_001d1218 = (undefined4 *)FUN_000589a0();\n  }\n  for (iVar6 = *(int *)(param_2 + 0x3c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x9c)) {\n    iVar3 = bfd_get_section_by_name(iVar6,".drectve");\n    if (iVar3 != 0) {\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }\n  }\n  piVar13 = (int *)DAT_001d1218[0x12];\njoined_r0x00066d64:\n  if (piVar13 != (int *)0x0) {\n    do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );\n  }\n  bVar2 = *param_2;\n  if ((bVar2 & 2) == 0) {\n    if (DAT_001d1218[0xb] != 0) {\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }\n    puVar24 = DAT_001d1218;\n    if ((DAT_001d1214 != 0) && (DAT_001d1210 == 0)) {\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }\nLAB_00067375:\n    if ((bVar2 & 1) == 0) {\n      return;\n    }\n  }\n  else {\n    if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }\n    local_48[0xb] = iVar3;\n    DAT_001d1278 = xmalloc(iVar6);\n    DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);\n    puVar24 = DAT_001d1218;\n    memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);\n    iVar6 = puVar24[0xb];\n    DAT_001d1258 = 0;\n    DAT_001d125c = 0x10000;\n    DAT_001d126c = 0;\n    DAT_001d1268 = 0;\n    DAT_001d1264 = 0;\n    if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }\njoined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }\n  }\n  DAT_001d1260 = (char *)*puVar24;\n  if (DAT_001d1260 == (char *)0x0) {\n    DAT_001d1260 = (char *)*param_1;\n    cVar22 = *DAT_001d1260;\n    if (cVar22 != '\0') {\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }\n  }\n  if ((DAT_001d1264 == 0) || (DAT_001d1258 <= DAT_001d126c)) {\n    DAT_001d125c = 1;\n    DAT_001d1258 = DAT_001d126c;\n  }\n  else {\n    iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;\n    if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }\n  }\n  DAT_001d1270 = (DAT_001d1258 - DAT_001d125c) + 1;\n  puVar11 = (undefined4 *)xmalloc(DAT_001d1270 * 4);\n  puVar24 = puVar11 + DAT_001d1270;\n  DAT_001d1254 = puVar11;\n  if (0 < DAT_001d1270) {\n    do {\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    } while (puVar24 != puVar11);\n  }\n  local_48 = DAT_001d1218;\n  local_3c = DAT_001d125c;\n  if ((int)DAT_001d1218[0xb] < 1) {\n    local_44 = 0;\n    iVar6 = DAT_001d125c;\n    goto LAB_00067580;\n  }\n  local_44 = 0;\n  local_40 = (char *)0x0;\n  iVar3 = DAT_001d1218[0xc];\n  do {\n    iVar6 = (int)local_40 * 0x1c;\n    puVar24 = (undefined4 *)(iVar3 + iVar6);\n    if ((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))\n    {\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }\n    else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }\n    if (*(char *)(puVar24 + 6) != '\0') {\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }\n    pvVar4 = DAT_001d1274;\n    puVar24 = DAT_001d1254;\n    local_40 = (char *)((int)local_40 + 1);\n  } while ((int)local_40 < local_48[0xb]);\n  iVar6 = local_3c;\n  if (local_48[0xb] < 1) goto LAB_00067580;\n  iVar18 = 0;\n  piVar13 = (int *)(iVar3 + 0xc);\n  do {\n    if (*(int *)((int)pvVar4 + iVar18 * 4) == 0) {\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }\n    iVar18 = iVar18 + 1;\n    piVar13 = piVar13 + 7;\n    if (local_48[0xb] <= iVar18) {\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }\n  } while( true );\ncode_r0x00066da5:\n  piVar13 = (int *)*piVar13;\n  **(uint **)(iVar6 + 0x14) = *puVar1;\n  goto joined_r0x00066d64;\n}\n\n" comment comment (function_definition "void FUN_00066ca0(undefined4 *param_1,byte *param_2)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  int iVar3;\n  void *pvVar4;\n  undefined *puVar5;\n  int iVar6;\n  size_t sVar7;\n  char *pcVar8;\n  char *pcVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined4 uVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  char *pcVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int iVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  int iVar21;\n  char cVar22;\n  byte *pbVar23;\n  undefined4 *puVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  bool bVar28;\n  byte bVar29;\n  int *local_48;\n  uint local_44;\n  char *local_40;\n  int local_3c;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar29 = 0;\n  uStack_14 = 0x66ca9;\n  FUN_00063a00(*(undefined4 *)param_1[1]);\n  FUN_00066c30(param_1);\n  if (DAT_001d1218 == (undefined4 *)0x0) {\n    DAT_001d1218 = (undefined4 *)FUN_000589a0();\n  }\n  for (iVar6 = *(int *)(param_2 + 0x3c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x9c)) {\n    iVar3 = bfd_get_section_by_name(iVar6,".drectve");\n    if (iVar3 != 0) {\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }\n  }\n  piVar13 = (int *)DAT_001d1218[0x12];\njoined_r0x00066d64:\n  if (piVar13 != (int *)0x0) {\n    do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );\n  }\n  bVar2 = *param_2;\n  if ((bVar2 & 2) == 0) {\n    if (DAT_001d1218[0xb] != 0) {\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }\n    puVar24 = DAT_001d1218;\n    if ((DAT_001d1214 != 0) && (DAT_001d1210 == 0)) {\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }\nLAB_00067375:\n    if ((bVar2 & 1) == 0) {\n      return;\n    }\n  }\n  else {\n    if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }\n    local_48[0xb] = iVar3;\n    DAT_001d1278 = xmalloc(iVar6);\n    DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);\n    puVar24 = DAT_001d1218;\n    memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);\n    iVar6 = puVar24[0xb];\n    DAT_001d1258 = 0;\n    DAT_001d125c = 0x10000;\n    DAT_001d126c = 0;\n    DAT_001d1268 = 0;\n    DAT_001d1264 = 0;\n    if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }\njoined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }\n  }\n  DAT_001d1260 = (char *)*puVar24;\n  if (DAT_001d1260 == (char *)0x0) {\n    DAT_001d1260 = (char *)*param_1;\n    cVar22 = *DAT_001d1260;\n    if (cVar22 != '\0') {\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }\n  }\n  if ((DAT_001d1264 == 0) || (DAT_001d1258 <= DAT_001d126c)) {\n    DAT_001d125c = 1;\n    DAT_001d1258 = DAT_001d126c;\n  }\n  else {\n    iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;\n    if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }\n  }\n  DAT_001d1270 = (DAT_001d1258 - DAT_001d125c) + 1;\n  puVar11 = (undefined4 *)xmalloc(DAT_001d1270 * 4);\n  puVar24 = puVar11 + DAT_001d1270;\n  DAT_001d1254 = puVar11;\n  if (0 < DAT_001d1270) {\n    do {\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    } while (puVar24 != puVar11);\n  }\n  local_48 = DAT_001d1218;\n  local_3c = DAT_001d125c;\n  if ((int)DAT_001d1218[0xb] < 1) {\n    local_44 = 0;\n    iVar6 = DAT_001d125c;\n    goto LAB_00067580;\n  }\n  local_44 = 0;\n  local_40 = (char *)0x0;\n  iVar3 = DAT_001d1218[0xc];\n  do {\n    iVar6 = (int)local_40 * 0x1c;\n    puVar24 = (undefined4 *)(iVar3 + iVar6);\n    if ((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))\n    {\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }\n    else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }\n    if (*(char *)(puVar24 + 6) != '\0') {\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }\n    pvVar4 = DAT_001d1274;\n    puVar24 = DAT_001d1254;\n    local_40 = (char *)((int)local_40 + 1);\n  } while ((int)local_40 < local_48[0xb]);\n  iVar6 = local_3c;\n  if (local_48[0xb] < 1) goto LAB_00067580;\n  iVar18 = 0;\n  piVar13 = (int *)(iVar3 + 0xc);\n  do {\n    if (*(int *)((int)pvVar4 + iVar18 * 4) == 0) {\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }\n    iVar18 = iVar18 + 1;\n    piVar13 = piVar13 + 7;\n    if (local_48[0xb] <= iVar18) {\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }\n  } while( true );\ncode_r0x00066da5:\n  piVar13 = (int *)*piVar13;\n  **(uint **)(iVar6 + 0x14) = *puVar1;\n  goto joined_r0x00066d64;\n}" primitive_type (function_declarator "FUN_00066ca0(undefined4 *param_1,byte *param_2)" identifier (parameter_list "(undefined4 *param_1,byte *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  byte bVar2;\n  int iVar3;\n  void *pvVar4;\n  undefined *puVar5;\n  int iVar6;\n  size_t sVar7;\n  char *pcVar8;\n  char *pcVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined4 uVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  char *pcVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int iVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  int iVar21;\n  char cVar22;\n  byte *pbVar23;\n  undefined4 *puVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  bool bVar28;\n  byte bVar29;\n  int *local_48;\n  uint local_44;\n  char *local_40;\n  int local_3c;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar29 = 0;\n  uStack_14 = 0x66ca9;\n  FUN_00063a00(*(undefined4 *)param_1[1]);\n  FUN_00066c30(param_1);\n  if (DAT_001d1218 == (undefined4 *)0x0) {\n    DAT_001d1218 = (undefined4 *)FUN_000589a0();\n  }\n  for (iVar6 = *(int *)(param_2 + 0x3c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x9c)) {\n    iVar3 = bfd_get_section_by_name(iVar6,".drectve");\n    if (iVar3 != 0) {\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }\n  }\n  piVar13 = (int *)DAT_001d1218[0x12];\njoined_r0x00066d64:\n  if (piVar13 != (int *)0x0) {\n    do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );\n  }\n  bVar2 = *param_2;\n  if ((bVar2 & 2) == 0) {\n    if (DAT_001d1218[0xb] != 0) {\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }\n    puVar24 = DAT_001d1218;\n    if ((DAT_001d1214 != 0) && (DAT_001d1210 == 0)) {\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }\nLAB_00067375:\n    if ((bVar2 & 1) == 0) {\n      return;\n    }\n  }\n  else {\n    if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }\n    local_48[0xb] = iVar3;\n    DAT_001d1278 = xmalloc(iVar6);\n    DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);\n    puVar24 = DAT_001d1218;\n    memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);\n    iVar6 = puVar24[0xb];\n    DAT_001d1258 = 0;\n    DAT_001d125c = 0x10000;\n    DAT_001d126c = 0;\n    DAT_001d1268 = 0;\n    DAT_001d1264 = 0;\n    if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }\njoined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }\n  }\n  DAT_001d1260 = (char *)*puVar24;\n  if (DAT_001d1260 == (char *)0x0) {\n    DAT_001d1260 = (char *)*param_1;\n    cVar22 = *DAT_001d1260;\n    if (cVar22 != '\0') {\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }\n  }\n  if ((DAT_001d1264 == 0) || (DAT_001d1258 <= DAT_001d126c)) {\n    DAT_001d125c = 1;\n    DAT_001d1258 = DAT_001d126c;\n  }\n  else {\n    iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;\n    if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }\n  }\n  DAT_001d1270 = (DAT_001d1258 - DAT_001d125c) + 1;\n  puVar11 = (undefined4 *)xmalloc(DAT_001d1270 * 4);\n  puVar24 = puVar11 + DAT_001d1270;\n  DAT_001d1254 = puVar11;\n  if (0 < DAT_001d1270) {\n    do {\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    } while (puVar24 != puVar11);\n  }\n  local_48 = DAT_001d1218;\n  local_3c = DAT_001d125c;\n  if ((int)DAT_001d1218[0xb] < 1) {\n    local_44 = 0;\n    iVar6 = DAT_001d125c;\n    goto LAB_00067580;\n  }\n  local_44 = 0;\n  local_40 = (char *)0x0;\n  iVar3 = DAT_001d1218[0xc];\n  do {\n    iVar6 = (int)local_40 * 0x1c;\n    puVar24 = (undefined4 *)(iVar3 + iVar6);\n    if ((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))\n    {\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }\n    else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }\n    if (*(char *)(puVar24 + 6) != '\0') {\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }\n    pvVar4 = DAT_001d1274;\n    puVar24 = DAT_001d1254;\n    local_40 = (char *)((int)local_40 + 1);\n  } while ((int)local_40 < local_48[0xb]);\n  iVar6 = local_3c;\n  if (local_48[0xb] < 1) goto LAB_00067580;\n  iVar18 = 0;\n  piVar13 = (int *)(iVar3 + 0xc);\n  do {\n    if (*(int *)((int)pvVar4 + iVar18 * 4) == 0) {\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }\n    iVar18 = iVar18 + 1;\n    piVar13 = piVar13 + 7;\n    if (local_48[0xb] <= iVar18) {\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }\n  } while( true );\ncode_r0x00066da5:\n  piVar13 = (int *)*piVar13;\n  **(uint **)(iVar6 + 0x14) = *puVar1;\n  goto joined_r0x00066d64;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "char cVar22;" primitive_type identifier ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "undefined4 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "bool bVar27;" primitive_type identifier ;) (declaration "bool bVar28;" primitive_type identifier ;) (declaration "byte bVar29;" type_identifier identifier ;) (declaration "int *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "char *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "int local_3c;" primitive_type 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 "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x66ca9;" (assignment_expression "uStack_14 = 0x66ca9" identifier = number_literal) ;) (expression_statement "FUN_00063a00(*(undefined4 *)param_1[1]);" (call_expression "FUN_00063a00(*(undefined4 *)param_1[1])" identifier (argument_list "(*(undefined4 *)param_1[1])" ( (pointer_expression "*(undefined4 *)param_1[1]" * (cast_expression "(undefined4 *)param_1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ))) ;) (expression_statement "FUN_00066c30(param_1);" (call_expression "FUN_00066c30(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (if_statement "if (DAT_001d1218 == (undefined4 *)0x0) {\n    DAT_001d1218 = (undefined4 *)FUN_000589a0();\n  }" if (parenthesized_expression "(DAT_001d1218 == (undefined4 *)0x0)" ( (binary_expression "DAT_001d1218 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_001d1218 = (undefined4 *)FUN_000589a0();\n  }" { (expression_statement "DAT_001d1218 = (undefined4 *)FUN_000589a0();" (assignment_expression "DAT_001d1218 = (undefined4 *)FUN_000589a0()" identifier = (cast_expression "(undefined4 *)FUN_000589a0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000589a0()" identifier (argument_list "()" ( ))))) ;) })) (for_statement "for (iVar6 = *(int *)(param_2 + 0x3c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x9c)) {\n    iVar3 = bfd_get_section_by_name(iVar6,".drectve");\n    if (iVar3 != 0) {\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }\n  }" for ( (assignment_expression "iVar6 = *(int *)(param_2 + 0x3c)" identifier = (pointer_expression "*(int *)(param_2 + 0x3c)" * (cast_expression "(int *)(param_2 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3c)" ( (binary_expression "param_2 + 0x3c" identifier + number_literal) ))))) ; (binary_expression "iVar6 != 0" identifier != number_literal) ; (assignment_expression "iVar6 = *(int *)(iVar6 + 0x9c)" identifier = (pointer_expression "*(int *)(iVar6 + 0x9c)" * (cast_expression "(int *)(iVar6 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x9c)" ( (binary_expression "iVar6 + 0x9c" identifier + number_literal) ))))) ) (compound_statement "{\n    iVar3 = bfd_get_section_by_name(iVar6,".drectve");\n    if (iVar3 != 0) {\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }\n  }" { (expression_statement "iVar3 = bfd_get_section_by_name(iVar6,".drectve");" (assignment_expression "iVar3 = bfd_get_section_by_name(iVar6,".drectve")" identifier = (call_expression "bfd_get_section_by_name(iVar6,".drectve")" identifier (argument_list "(iVar6,".drectve")" ( identifier , (string_literal "".drectve"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }" { (expression_statement "iVar18 = *(int *)(iVar3 + 0x2c);" (assignment_expression "iVar18 = *(int *)(iVar3 + 0x2c)" identifier = (pointer_expression "*(int *)(iVar3 + 0x2c)" * (cast_expression "(int *)(iVar3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "pvVar4 = (void *)xmalloc(iVar18);" (assignment_expression "pvVar4 = (void *)xmalloc(iVar18)" identifier = (cast_expression "(void *)xmalloc(iVar18)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar18)" identifier (argument_list "(iVar18)" ( identifier ))))) ;) (expression_statement "bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);" (call_expression "bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f)" identifier (argument_list "(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , (binary_expression "iVar18 >> 0x1f" identifier >> number_literal) ))) ;) (expression_statement "FUN_0005a570(DAT_001d1218,pvVar4,iVar18);" (call_expression "FUN_0005a570(DAT_001d1218,pvVar4,iVar18)" identifier (argument_list "(DAT_001d1218,pvVar4,iVar18)" ( identifier , identifier , identifier ))) ;) (expression_statement "free(pvVar4);" (call_expression "free(pvVar4)" identifier (argument_list "(pvVar4)" ( identifier ))) ;) })) })) (expression_statement "piVar13 = (int *)DAT_001d1218[0x12];" (assignment_expression "piVar13 = (int *)DAT_001d1218[0x12]" identifier = (cast_expression "(int *)DAT_001d1218[0x12]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_001d1218[0x12]" identifier [ number_literal ]))) ;) (labeled_statement "joined_r0x00066d64:\n  if (piVar13 != (int *)0x0) {\n    do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (piVar13 != (int *)0x0) {\n    do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );\n  }" if (parenthesized_expression "(piVar13 != (int *)0x0)" ( (binary_expression "piVar13 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );\n  }" { (do_statement "do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );" do (compound_statement "{\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    }" { (expression_statement "iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);" (assignment_expression "iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0)" ( (pointer_expression "*(undefined4 *)(param_2 + 0x20)" * (cast_expression "(undefined4 *)(param_2 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) , (subscript_expression "piVar13[1]" identifier [ number_literal ]) , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }" if (parenthesized_expression "((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05'))" ( (binary_expression "(iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)(iVar6 + 0xc) == '\x05')" ( (binary_expression "*(char *)(iVar6 + 0xc) == '\x05'" (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 "'\x05'" ' escape_sequence ')) ))) )) (compound_statement "{\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }" { (expression_statement "puVar1 = (uint *)(piVar13 + 2);" (assignment_expression "puVar1 = (uint *)(piVar13 + 2)" identifier = (cast_expression "(uint *)(piVar13 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar13 + 2)" ( (binary_expression "piVar13 + 2" identifier + number_literal) )))) ;) (if_statement "if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;" if (parenthesized_expression "(**(uint **)(iVar6 + 0x14) < *puVar1)" ( (binary_expression "**(uint **)(iVar6 + 0x14) < *puVar1" (pointer_expression "**(uint **)(iVar6 + 0x14)" * (pointer_expression "*(uint **)(iVar6 + 0x14)" * (cast_expression "(uint **)(iVar6 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) ))))) < (pointer_expression "*puVar1" * identifier)) )) (goto_statement "goto code_r0x00066da5;" goto statement_identifier ;)) })) (expression_statement "piVar13 = (int *)*piVar13;" (assignment_expression "piVar13 = (int *)*piVar13" identifier = (cast_expression "(int *)*piVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;) (if_statement "if (piVar13 == (int *)0x0) break;" if (parenthesized_expression "(piVar13 == (int *)0x0)" ( (binary_expression "piVar13 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (expression_statement "bVar2 = *param_2;" (assignment_expression "bVar2 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if ((bVar2 & 2) == 0) {\n    if (DAT_001d1218[0xb] != 0) {\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }\n    puVar24 = DAT_001d1218;\n    if ((DAT_001d1214 != 0) && (DAT_001d1210 == 0)) {\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }\nLAB_00067375:\n    if ((bVar2 & 1) == 0) {\n      return;\n    }\n  }\n  else {\n    if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }\n    local_48[0xb] = iVar3;\n    DAT_001d1278 = xmalloc(iVar6);\n    DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);\n    puVar24 = DAT_001d1218;\n    memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);\n    iVar6 = puVar24[0xb];\n    DAT_001d1258 = 0;\n    DAT_001d125c = 0x10000;\n    DAT_001d126c = 0;\n    DAT_001d1268 = 0;\n    DAT_001d1264 = 0;\n    if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }\njoined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }\n  }" if (parenthesized_expression "((bVar2 & 2) == 0)" ( (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    if (DAT_001d1218[0xb] != 0) {\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }\n    puVar24 = DAT_001d1218;\n    if ((DAT_001d1214 != 0) && (DAT_001d1210 == 0)) {\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }\nLAB_00067375:\n    if ((bVar2 & 1) == 0) {\n      return;\n    }\n  }" { (if_statement "if (DAT_001d1218[0xb] != 0) {\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }" if (parenthesized_expression "(DAT_001d1218[0xb] != 0)" ( (binary_expression "DAT_001d1218[0xb] != 0" (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }" { (if_statement "if (DAT_001d1214 != 0) goto LAB_00066fad;" if (parenthesized_expression "(DAT_001d1214 != 0)" ( (binary_expression "DAT_001d1214 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00066fad;" goto statement_identifier ;)) (expression_statement "iVar6 = DAT_001d1218[0xb];" (assignment_expression "iVar6 = DAT_001d1218[0xb]" identifier = (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ])) ;) (if_statement "if (DAT_001d120c != 0) goto LAB_00066fde;" if (parenthesized_expression "(DAT_001d120c != 0)" ( (binary_expression "DAT_001d120c != 0" identifier != number_literal) )) (goto_statement "goto LAB_00066fde;" goto statement_identifier ;)) (goto_statement "goto LAB_000671fd;" goto statement_identifier ;) })) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" identifier = identifier) ;) (if_statement "if ((DAT_001d1214 != 0) && (DAT_001d1210 == 0)) {\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }" if (parenthesized_expression "((DAT_001d1214 != 0) && (DAT_001d1210 == 0))" ( (binary_expression "(DAT_001d1214 != 0) && (DAT_001d1210 == 0)" (parenthesized_expression "(DAT_001d1214 != 0)" ( (binary_expression "DAT_001d1214 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_001d1210 == 0)" ( (binary_expression "DAT_001d1210 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }" { (labeled_statement "LAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);" statement_identifier : (expression_statement "local_44 = *(uint *)(param_2 + 0x3c);" (assignment_expression "local_44 = *(uint *)(param_2 + 0x3c)" identifier = (pointer_expression "*(uint *)(param_2 + 0x3c)" * (cast_expression "(uint *)(param_2 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3c)" ( (binary_expression "param_2 + 0x3c" identifier + number_literal) ))))) ;)) (if_statement "if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }" if (parenthesized_expression "(local_44 != 0)" ( (binary_expression "local_44 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }" { (expression_statement "puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;" (assignment_expression "puVar5 = PTR__bfd_std_section_001cefbc + 0xc0" identifier = (binary_expression "PTR__bfd_std_section_001cefbc + 0xc0" identifier + number_literal)) ;) (while_statement "while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }" while (parenthesized_expression "(iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0)" ( (comma_expression "iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0" (assignment_expression "iVar6 = bfd_generic_link_read_symbols(local_44)" identifier = (call_expression "bfd_generic_link_read_symbols(local_44)" identifier (argument_list "(local_44)" ( identifier )))) , (binary_expression "iVar6 != 0" identifier != number_literal)) )) (compound_statement "{\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }" { (if_statement "if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }" if (parenthesized_expression "(0 < *(int *)(local_44 + 0x7c))" ( (binary_expression "0 < *(int *)(local_44 + 0x7c)" number_literal < (pointer_expression "*(int *)(local_44 + 0x7c)" * (cast_expression "(int *)(local_44 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44 + 0x7c)" ( (binary_expression "local_44 + 0x7c" identifier + number_literal) ))))) )) (compound_statement "{\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }" { (expression_statement "piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);" (assignment_expression "piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c)" identifier = (binary_expression "*(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c)" (pointer_expression "*(int **)(local_44 + 0x78)" * (cast_expression "(int **)(local_44 + 0x78)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_44 + 0x78)" ( (binary_expression "local_44 + 0x78" identifier + number_literal) )))) + (pointer_expression "*(int *)(local_44 + 0x7c)" * (cast_expression "(int *)(local_44 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44 + 0x7c)" ( (binary_expression "local_44 + 0x7c" identifier + number_literal) )))))) ;) (expression_statement "local_48 = *(int **)(local_44 + 0x78);" (assignment_expression "local_48 = *(int **)(local_44 + 0x78)" identifier = (pointer_expression "*(int **)(local_44 + 0x78)" * (cast_expression "(int **)(local_44 + 0x78)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_44 + 0x78)" ( (binary_expression "local_44 + 0x78" identifier + number_literal) ))))) ;) (do_statement "do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);" do (compound_statement "{\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            }" { (while_statement "while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }" while (parenthesized_expression "((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0)))))" ( (parenthesized_expression "(iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))" ( (comma_expression "iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0)))" (assignment_expression "iVar6 = *local_48" identifier = (pointer_expression "*local_48" * identifier)) , (binary_expression "*(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0)))" (binary_expression "*(undefined **)(iVar6 + 0x14) == puVar5" (pointer_expression "*(undefined **)(iVar6 + 0x14)" * (cast_expression "(undefined **)(iVar6 + 0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) == identifier) || (parenthesized_expression "(((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0)))" ( (parenthesized_expression "((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))" ( (binary_expression "(*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0)" (binary_expression "(*(uint *)(iVar6 + 0x10) & 2) == 0" (parenthesized_expression "(*(uint *)(iVar6 + 0x10) & 2)" ( (binary_expression "*(uint *)(iVar6 + 0x10) & 2" (pointer_expression "*(uint *)(iVar6 + 0x10)" * (cast_expression "(uint *)(iVar6 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) & number_literal) )) == number_literal) && (parenthesized_expression "(*(uint *)(iVar6 + 0x10) != 0)" ( (binary_expression "*(uint *)(iVar6 + 0x10) != 0" (pointer_expression "*(uint *)(iVar6 + 0x10)" * (cast_expression "(uint *)(iVar6 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) != number_literal) ))) )) )))) )) )) (compound_statement "{\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }" { (labeled_statement "LAB_00066f48:\n                local_48 = local_48 + 1;" statement_identifier : (expression_statement "local_48 = local_48 + 1;" (assignment_expression "local_48 = local_48 + 1" identifier = (binary_expression "local_48 + 1" identifier + number_literal)) ;)) (if_statement "if (piVar13 == local_48) goto LAB_00067678;" if (parenthesized_expression "(piVar13 == local_48)" ( (binary_expression "piVar13 == local_48" identifier == identifier) )) (goto_statement "goto LAB_00067678;" goto statement_identifier ;)) })) (expression_statement "bVar26 = DAT_001d1478 == 0;" (assignment_expression "bVar26 = DAT_001d1478 == 0" identifier = (binary_expression "DAT_001d1478 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }" { (expression_statement "iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));" (assignment_expression "iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4))" identifier = (call_expression "bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4))" identifier (argument_list "(DAT_001d1478,*(undefined4 *)(iVar6 + 4))" ( identifier , (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 "bVar26 = iVar6 == 0;" (assignment_expression "bVar26 = iVar6 == 0" identifier = (binary_expression "iVar6 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar26) goto LAB_00066f48;" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (goto_statement "goto LAB_00066f48;" goto statement_identifier ;)) (expression_statement "iVar6 = *local_48;" (assignment_expression "iVar6 = *local_48" identifier = (pointer_expression "*local_48" * identifier)) ;) })) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "pbVar19 = *(byte **)(iVar6 + 4);" (assignment_expression "pbVar19 = *(byte **)(iVar6 + 4)" identifier = (pointer_expression "*(byte **)(iVar6 + 4)" * (cast_expression "(byte **)(iVar6 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = 6;" (assignment_expression "iVar6 = 6" identifier = number_literal) ;) (expression_statement "pbVar20 = pbVar19;" (assignment_expression "pbVar20 = pbVar19" identifier = identifier) ;) (expression_statement "pbVar23 = (byte *)0x1adaf4;" (assignment_expression "pbVar23 = (byte *)0x1adaf4" identifier = (cast_expression "(byte *)0x1adaf4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);" do (compound_statement "{\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -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 "bVar25 = *pbVar20 < *pbVar23;" (assignment_expression "bVar25 = *pbVar20 < *pbVar23" identifier = (binary_expression "*pbVar20 < *pbVar23" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "bVar26 = *pbVar20 == *pbVar23;" (assignment_expression "bVar26 = *pbVar20 == *pbVar23" identifier = (binary_expression "*pbVar20 == *pbVar23" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar29 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar29 * -2" identifier + (binary_expression "(uint)bVar29 * -2" (cast_expression "(uint)bVar29" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar29 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar29 * -2" identifier + (binary_expression "(uint)bVar29 * -2" (cast_expression "(uint)bVar29" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;" if (parenthesized_expression "((!bVar25 && !bVar26) == bVar25)" ( (binary_expression "(!bVar25 && !bVar26) == bVar25" (parenthesized_expression "(!bVar25 && !bVar26)" ( (binary_expression "!bVar25 && !bVar26" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_00066f48;" goto statement_identifier ;)) (expression_statement "sVar7 = strlen((char *)pbVar19);" (assignment_expression "sVar7 = strlen((char *)pbVar19)" identifier = (call_expression "strlen((char *)pbVar19)" identifier (argument_list "((char *)pbVar19)" ( (cast_expression "(char *)pbVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pcVar8 = (char *)xmalloc(sVar7 + 7);" (assignment_expression "pcVar8 = (char *)xmalloc(sVar7 + 7)" identifier = (cast_expression "(char *)xmalloc(sVar7 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar7 + 7)" identifier (argument_list "(sVar7 + 7)" ( (binary_expression "sVar7 + 7" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar8,"%s%s","__imp_",pbVar19);" (call_expression "sprintf(pcVar8,"%s%s","__imp_",pbVar19)" identifier (argument_list "(pcVar8,"%s%s","__imp_",pbVar19)" ( identifier , (string_literal ""%s%s"" " string_content ") , (string_literal ""__imp_"" " string_content ") , identifier ))) ;) (expression_statement "iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);" (assignment_expression "iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0)" ( (pointer_expression "*(undefined4 *)(param_2 + 0x20)" * (cast_expression "(undefined4 *)(param_2 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) , identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "free(pcVar8);" (call_expression "free(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (if_statement "if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;" if (parenthesized_expression "((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03'))" ( (binary_expression "(iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')" (parenthesized_expression "(iVar6 != 0)" ( (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 ')) ))) )) (goto_statement "goto LAB_00066f48;" goto statement_identifier ;)) (if_statement "if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }" if (parenthesized_expression "(*(int *)(DAT_001d127c + 0x14) != 0)" ( (binary_expression "*(int *)(DAT_001d127c + 0x14) != 0" (pointer_expression "*(int *)(DAT_001d127c + 0x14)" * (cast_expression "(int *)(DAT_001d127c + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d127c + 0x14)" ( (binary_expression "DAT_001d127c + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }" { (expression_statement "pbVar19 = pbVar19 + (*pbVar19 == 0x5f);" (assignment_expression "pbVar19 = pbVar19 + (*pbVar19 == 0x5f)" identifier = (binary_expression "pbVar19 + (*pbVar19 == 0x5f)" identifier + (parenthesized_expression "(*pbVar19 == 0x5f)" ( (binary_expression "*pbVar19 == 0x5f" (pointer_expression "*pbVar19" * identifier) == number_literal) )))) ;) })) (expression_statement "iVar6 = FUN_00062820(pbVar19);" (assignment_expression "iVar6 = FUN_00062820(pbVar19)" identifier = (call_expression "FUN_00062820(pbVar19)" identifier (argument_list "(pbVar19)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) goto LAB_00066f48;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00066f48;" goto statement_identifier ;)) (expression_statement "local_20[0] = 0;" (assignment_expression "local_20[0] = 0" (subscript_expression "local_20[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);" (assignment_expression "iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20)" identifier = (call_expression "FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20)" identifier (argument_list "(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20)" ( identifier , identifier , number_literal , number_literal , number_literal , identifier )))) ;) (if_statement "if (local_20[0] != 0) goto LAB_00066f48;" if (parenthesized_expression "(local_20[0] != 0)" ( (binary_expression "local_20[0] != 0" (subscript_expression "local_20[0]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00066f48;" goto statement_identifier ;)) (expression_statement "piVar17 = local_48 + 1;" (assignment_expression "piVar17 = local_48 + 1" identifier = (binary_expression "local_48 + 1" identifier + number_literal)) ;) (expression_statement "*(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;" (assignment_expression "*(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1" (pointer_expression "*(byte *)(iVar6 + 0x17)" * (cast_expression "(byte *)(iVar6 + 0x17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x17)" ( (binary_expression "iVar6 + 0x17" identifier + number_literal) )))) = (binary_expression "((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1" (parenthesized_expression "((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1)" ( (binary_expression "(byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1" (call_expression "(byte)(*(uint *)(*local_48 + 0x10) >> 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(uint *)(*local_48 + 0x10) >> 3)" ( (binary_expression "*(uint *)(*local_48 + 0x10) >> 3" (pointer_expression "*(uint *)(*local_48 + 0x10)" * (cast_expression "(uint *)(*local_48 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_48 + 0x10)" ( (binary_expression "*local_48 + 0x10" (pointer_expression "*local_48" * identifier) + number_literal) )))) >> number_literal) ))) ^ number_literal) )) & number_literal)) ;) (expression_statement "local_48 = piVar17;" (assignment_expression "local_48 = piVar17" identifier = identifier) ;) }) while (parenthesized_expression "(piVar13 != piVar17)" ( (binary_expression "piVar13 != piVar17" identifier != identifier) )) ;) })) (labeled_statement "LAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);" statement_identifier : (expression_statement "local_44 = *(int *)(local_44 + 0x9c);" (assignment_expression "local_44 = *(int *)(local_44 + 0x9c)" identifier = (pointer_expression "*(int *)(local_44 + 0x9c)" * (cast_expression "(int *)(local_44 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44 + 0x9c)" ( (binary_expression "local_44 + 0x9c" identifier + number_literal) ))))) ;)) (if_statement "if (local_44 == 0) goto LAB_00066fbb;" if (parenthesized_expression "(local_44 == 0)" ( (binary_expression "local_44 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00066fbb;" goto statement_identifier ;)) })) (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,local_44);" (call_expression "FUN_00034d20(uVar14,local_44)" identifier (argument_list "(uVar14,local_44)" ( identifier , identifier ))) ;) (expression_statement "iVar6 = DAT_001d1218[0xb];" (assignment_expression "iVar6 = DAT_001d1218[0xb]" identifier = (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ])) ;) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" identifier = identifier) ;) (goto_statement "goto joined_r0x00067b8d;" goto statement_identifier ;) })) (labeled_statement "LAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];" statement_identifier : (expression_statement "iVar6 = DAT_001d1218[0xb];" (assignment_expression "iVar6 = DAT_001d1218[0xb]" identifier = (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ])) ;)) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" identifier = identifier) ;) (if_statement "if (iVar6 != 0) goto LAB_00066fd0;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00066fd0;" goto statement_identifier ;)) (goto_statement "goto LAB_0006736e;" goto statement_identifier ;) })) (labeled_statement "LAB_00067375:\n    if ((bVar2 & 1) == 0) {\n      return;\n    }" statement_identifier : (if_statement "if ((bVar2 & 1) == 0) {\n      return;\n    }" if (parenthesized_expression "((bVar2 & 1) == 0)" ( (binary_expression "(bVar2 & 1) == 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) }))) }) (else_clause "else {\n    if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }\n    local_48[0xb] = iVar3;\n    DAT_001d1278 = xmalloc(iVar6);\n    DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);\n    puVar24 = DAT_001d1218;\n    memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);\n    iVar6 = puVar24[0xb];\n    DAT_001d1258 = 0;\n    DAT_001d125c = 0x10000;\n    DAT_001d126c = 0;\n    DAT_001d1268 = 0;\n    DAT_001d1264 = 0;\n    if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }\njoined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }\n  }" else (compound_statement "{\n    if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }\n    local_48[0xb] = iVar3;\n    DAT_001d1278 = xmalloc(iVar6);\n    DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);\n    puVar24 = DAT_001d1218;\n    memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);\n    iVar6 = puVar24[0xb];\n    DAT_001d1258 = 0;\n    DAT_001d125c = 0x10000;\n    DAT_001d126c = 0;\n    DAT_001d1268 = 0;\n    DAT_001d1264 = 0;\n    if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }\njoined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }\n  }" { (if_statement "if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }" if (parenthesized_expression "((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0))" ( (binary_expression "(DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)" (parenthesized_expression "(DAT_001d1214 != 0)" ( (binary_expression "DAT_001d1214 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar6 = DAT_001d1218[0xb], iVar6 == 0)" ( (comma_expression "iVar6 = DAT_001d1218[0xb], iVar6 == 0" (assignment_expression "iVar6 = DAT_001d1218[0xb]" identifier = (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ])) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }" { (labeled_statement "LAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;" statement_identifier : (if_statement "if (DAT_001d1210 == 0) goto LAB_00066df0;" if (parenthesized_expression "(DAT_001d1210 == 0)" ( (binary_expression "DAT_001d1210 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00066df0;" goto statement_identifier ;))) (goto_statement "goto LAB_00066fbb;" goto statement_identifier ;) })) (labeled_statement "LAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }" statement_identifier : (if_statement "if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }" if (parenthesized_expression "(DAT_001d120c == 0)" ( (binary_expression "DAT_001d120c == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }" { (labeled_statement "LAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];" statement_identifier : (expression_statement "sVar7 = DAT_001d1218[0xb];" (assignment_expression "sVar7 = DAT_001d1218[0xb]" identifier = (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ])) ;)) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" identifier = identifier) ;) (if_statement "if (DAT_001d1208 == 0) goto LAB_00067212;" if (parenthesized_expression "(DAT_001d1208 == 0)" ( (binary_expression "DAT_001d1208 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00067212;" goto statement_identifier ;)) (labeled_statement "LAB_0006709d:\n      bVar26 = false;" statement_identifier : (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;)) (expression_statement "bVar25 = sVar7 == 0;" (assignment_expression "bVar25 = sVar7 == 0" identifier = (binary_expression "sVar7 == 0" identifier == number_literal)) ;) (if_statement "if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }" if (parenthesized_expression "(0 < (int)sVar7)" ( (binary_expression "0 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }" { (expression_statement "local_40 = (char *)0x0;" (assignment_expression "local_40 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (do_statement "do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);" do (compound_statement "{\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        }" { (expression_statement "pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);" (assignment_expression "pbVar19 = *(byte **)(local_48[0xc] + (int)local_40)" identifier = (pointer_expression "*(byte **)(local_48[0xc] + (int)local_40)" * (cast_expression "(byte **)(local_48[0xc] + (int)local_40)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_48[0xc] + (int)local_40)" ( (binary_expression "local_48[0xc] + (int)local_40" (subscript_expression "local_48[0xc]" identifier [ number_literal ]) + (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "iVar6 = 6;" (assignment_expression "iVar6 = 6" identifier = number_literal) ;) (expression_statement "pbVar20 = pbVar19;" (assignment_expression "pbVar20 = pbVar19" identifier = identifier) ;) (expression_statement "pbVar23 = (byte *)0x1adaf4;" (assignment_expression "pbVar23 = (byte *)0x1adaf4" identifier = (cast_expression "(byte *)0x1adaf4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);" do (compound_statement "{\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -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 "bVar26 = *pbVar20 < *pbVar23;" (assignment_expression "bVar26 = *pbVar20 < *pbVar23" identifier = (binary_expression "*pbVar20 < *pbVar23" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "bVar25 = *pbVar20 == *pbVar23;" (assignment_expression "bVar25 = *pbVar20 == *pbVar23" identifier = (binary_expression "*pbVar20 == *pbVar23" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar29 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar29 * -2" identifier + (binary_expression "(uint)bVar29 * -2" (cast_expression "(uint)bVar29" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar29 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar29 * -2" identifier + (binary_expression "(uint)bVar29 * -2" (cast_expression "(uint)bVar29" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (if_statement "if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }" if (parenthesized_expression "(((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0))" ( (binary_expression "((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)" (parenthesized_expression "((!bVar26 && !bVar25) != bVar26)" ( (binary_expression "(!bVar26 && !bVar25) != bVar26" (parenthesized_expression "(!bVar26 && !bVar25)" ( (binary_expression "!bVar26 && !bVar25" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) != identifier) )) && (parenthesized_expression "(pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)" ( (comma_expression "pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0" (assignment_expression "pcVar8 = strchr((char *)pbVar19,0x40)" identifier = (call_expression "strchr((char *)pbVar19,0x40)" identifier (argument_list "((char *)pbVar19,0x40)" ( (cast_expression "(char *)pbVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) , (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }" { (expression_statement "local_20[0] = 1;" (assignment_expression "local_20[0] = 1" (subscript_expression "local_20[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));" (assignment_expression "pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40))" identifier = (cast_expression "(char *)xstrdup(pbVar19 + (*pbVar19 == 0x40))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pbVar19 + (*pbVar19 == 0x40))" identifier (argument_list "(pbVar19 + (*pbVar19 == 0x40))" ( (binary_expression "pbVar19 + (*pbVar19 == 0x40)" identifier + (parenthesized_expression "(*pbVar19 == 0x40)" ( (binary_expression "*pbVar19 == 0x40" (pointer_expression "*pbVar19" * identifier) == number_literal) ))) ))))) ;) (expression_statement "pcVar9 = strchr(pcVar8,0x40);" (assignment_expression "pcVar9 = strchr(pcVar8,0x40)" identifier = (call_expression "strchr(pcVar8,0x40)" identifier (argument_list "(pcVar8,0x40)" ( identifier , number_literal )))) ;) (expression_statement "*pcVar9 = '\0';" (assignment_expression "*pcVar9 = '\0'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar6 = FUN_00062820(pcVar8);" (assignment_expression "iVar6 = FUN_00062820(pcVar8)" identifier = (call_expression "FUN_00062820(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }" { (expression_statement "FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);" (call_expression "FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20)" identifier (argument_list "(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40)" * (cast_expression "(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1218[0xc] + 4 + (int)local_40)" ( (binary_expression "DAT_001d1218[0xc] + 4 + (int)local_40" (binary_expression "DAT_001d1218[0xc] + 4" (subscript_expression "DAT_001d1218[0xc]" identifier [ number_literal ]) + number_literal) + (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) , number_literal , number_literal , identifier ))) ;) })) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" identifier = identifier) ;) (if_statement "if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\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              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }" { (expression_statement "free(pcVar8);" (call_expression "free(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" identifier = identifier) ;) })) })) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "sVar7 = local_48[0xb];" (assignment_expression "sVar7 = local_48[0xb]" identifier = (subscript_expression "local_48[0xb]" identifier [ number_literal ])) ;) (expression_statement "local_40 = (char *)((int)local_40 + 0x1c);" (assignment_expression "local_40 = (char *)((int)local_40 + 0x1c)" identifier = (cast_expression "(char *)((int)local_40 + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_40 + 0x1c)" ( (binary_expression "(int)local_40 + 0x1c" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar26 = local_44 < sVar7;" (assignment_expression "bVar26 = local_44 < sVar7" identifier = (binary_expression "local_44 < sVar7" identifier < identifier)) ;) (expression_statement "bVar25 = local_44 == sVar7;" (assignment_expression "bVar25 = local_44 == sVar7" identifier = (binary_expression "local_44 == sVar7" identifier == identifier)) ;) }) while (parenthesized_expression "((int)local_44 < (int)sVar7)" ( (binary_expression "(int)local_44 < (int)sVar7" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (goto_statement "goto LAB_00067212;" goto statement_identifier ;) })) (labeled_statement "LAB_00067c38:\n      iVar6 = 0;" statement_identifier : (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;)) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }" else (compound_statement "{\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }" { (labeled_statement "LAB_00066fde:\n      bVar26 = false;" statement_identifier : (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;)) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" identifier = identifier) ;) (if_statement "if (iVar6 < 1) goto LAB_000671fd;" if (parenthesized_expression "(iVar6 < 1)" ( (binary_expression "iVar6 < 1" identifier < number_literal) )) (goto_statement "goto LAB_000671fd;" goto statement_identifier ;)) (do_statement "do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);" do (compound_statement "{\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      }" { (expression_statement "iVar6 = iVar3 * 0x1c;" (assignment_expression "iVar6 = iVar3 * 0x1c" identifier = (binary_expression "iVar3 * 0x1c" identifier * number_literal)) ;) (expression_statement "pcVar8 = *(char **)(local_48[0xc] + iVar6);" (assignment_expression "pcVar8 = *(char **)(local_48[0xc] + iVar6)" identifier = (pointer_expression "*(char **)(local_48[0xc] + iVar6)" * (cast_expression "(char **)(local_48[0xc] + iVar6)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_48[0xc] + iVar6)" ( (binary_expression "local_48[0xc] + iVar6" (subscript_expression "local_48[0xc]" identifier [ number_literal ]) + identifier) ))))) ;) (expression_statement "cVar22 = *pcVar8;" (assignment_expression "cVar22 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (if_statement "if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }" if (parenthesized_expression "((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0))" ( (binary_expression "(cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)" (parenthesized_expression "(cVar22 != '?')" ( (binary_expression "cVar22 != '?'" identifier != (char_literal "'?'" ' character ')) )) && (parenthesized_expression "(pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)" ( (comma_expression "pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0" (assignment_expression "pcVar9 = strchr(pcVar8,0x40)" identifier = (call_expression "strchr(pcVar8,0x40)" identifier (argument_list "(pcVar8,0x40)" ( identifier , number_literal )))) , (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }" { (expression_statement "pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));" (assignment_expression "pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'))" identifier = (cast_expression "(char *)xstrdup(pcVar8 + (cVar22 == '@'))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pcVar8 + (cVar22 == '@'))" identifier (argument_list "(pcVar8 + (cVar22 == '@'))" ( (binary_expression "pcVar8 + (cVar22 == '@')" identifier + (parenthesized_expression "(cVar22 == '@')" ( (binary_expression "cVar22 == '@'" identifier == (char_literal "'@'" ' character ')) ))) ))))) ;) (expression_statement "pcVar9 = strrchr(pcVar8,0x40);" (assignment_expression "pcVar9 = strrchr(pcVar8,0x40)" identifier = (call_expression "strrchr(pcVar8,0x40)" identifier (argument_list "(pcVar8,0x40)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }" if (parenthesized_expression "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }" { (expression_statement "uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);" (assignment_expression "uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6)" identifier = (pointer_expression "*(undefined4 *)(DAT_001d1218[0xc] + iVar6)" * (cast_expression "(undefined4 *)(DAT_001d1218[0xc] + iVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1218[0xc] + iVar6)" ( (binary_expression "DAT_001d1218[0xc] + iVar6" (subscript_expression "DAT_001d1218[0xc]" identifier [ number_literal ]) + identifier) ))))) ;) (expression_statement "uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);" (assignment_expression "uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5)" identifier (argument_list "(0,"%X%P: cannot export %s: invalid export name\n",5)" ( number_literal , (string_literal ""%X%P: cannot export %s: invalid export name\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar16,uVar14);" (call_expression "FUN_00034d20(uVar16,uVar14)" identifier (argument_list "(uVar16,uVar14)" ( identifier , identifier ))) ;) }) (else_clause "else {\n            *pcVar9 = '\0';\n          }" else (compound_statement "{\n            *pcVar9 = '\0';\n          }" { (expression_statement "*pcVar9 = '\0';" (assignment_expression "*pcVar9 = '\0'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" identifier = identifier) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "*(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;" (assignment_expression "*(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8" (pointer_expression "*(char **)(DAT_001d1218[0xc] + iVar6)" * (cast_expression "(char **)(DAT_001d1218[0xc] + iVar6)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_001d1218[0xc] + iVar6)" ( (binary_expression "DAT_001d1218[0xc] + iVar6" (subscript_expression "DAT_001d1218[0xc]" identifier [ number_literal ]) + identifier) )))) = identifier) ;) })) (expression_statement "sVar7 = local_48[0xb];" (assignment_expression "sVar7 = local_48[0xb]" identifier = (subscript_expression "local_48[0xb]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 < (int)sVar7)" ( (binary_expression "iVar3 < (int)sVar7" identifier < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (if_statement "if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }" if (parenthesized_expression "(bVar26)" ( identifier )) (compound_statement "{\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }" { (expression_statement "qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);" (call_expression "qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720)" identifier (argument_list "((void *)local_48[0xc],sVar7,0x1c,FUN_00061720)" ( (cast_expression "(void *)local_48[0xc]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_48[0xc]" identifier [ number_literal ])) , identifier , number_literal , identifier ))) ;) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" identifier = identifier) ;) (expression_statement "sVar7 = DAT_001d1218[0xb];" (assignment_expression "sVar7 = DAT_001d1218[0xb]" identifier = (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ])) ;) })) (if_statement "if (DAT_001d1208 != 0) goto LAB_0006709d;" if (parenthesized_expression "(DAT_001d1208 != 0)" ( (binary_expression "DAT_001d1208 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006709d;" goto statement_identifier ;)) (labeled_statement "LAB_00067212:\n      piVar13 = local_48;" statement_identifier : (expression_statement "piVar13 = local_48;" (assignment_expression "piVar13 = local_48" identifier = identifier) ;)) (expression_statement "puVar24 = (undefined4 *)local_48[0xc];" (assignment_expression "puVar24 = (undefined4 *)local_48[0xc]" identifier = (cast_expression "(undefined4 *)local_48[0xc]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_48[0xc]" identifier [ number_literal ]))) ;) (if_statement "if ((int)sVar7 < 1) goto LAB_00067c38;" if (parenthesized_expression "((int)sVar7 < 1)" ( (binary_expression "(int)sVar7 < 1" (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00067c38;" goto statement_identifier ;)) (expression_statement "local_48 = (int *)0x0;" (assignment_expression "local_48 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "puVar11 = puVar24;" (assignment_expression "puVar11 = puVar24" identifier = identifier) ;) (do_statement "do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);" do (compound_statement "{\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      }" { (if_statement "if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }" if (parenthesized_expression "(local_48 == (int *)0x0)" ( (binary_expression "local_48 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }" { (labeled_statement "LAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }" statement_identifier : (if_statement "if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }" if (parenthesized_expression "((int *)iVar3 != local_48)" ( (binary_expression "(int *)iVar3 != local_48" (cast_expression "(int *)iVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }" { (expression_statement "puVar10 = puVar24 + iVar3 * 7;" (assignment_expression "puVar10 = puVar24 + iVar3 * 7" identifier = (binary_expression "puVar24 + iVar3 * 7" identifier + (binary_expression "iVar3 * 7" identifier * number_literal))) ;) (expression_statement "*puVar10 = *puVar11;" (assignment_expression "*puVar10 = *puVar11" (pointer_expression "*puVar10" * identifier) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "puVar10[1] = puVar11[1];" (assignment_expression "puVar10[1] = puVar11[1]" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = (subscript_expression "puVar11[1]" identifier [ number_literal ])) ;) (expression_statement "puVar10[2] = puVar11[2];" (assignment_expression "puVar10[2] = puVar11[2]" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = (subscript_expression "puVar11[2]" identifier [ number_literal ])) ;) (expression_statement "puVar10[3] = puVar11[3];" (assignment_expression "puVar10[3] = puVar11[3]" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = (subscript_expression "puVar11[3]" identifier [ number_literal ])) ;) (expression_statement "puVar10[4] = puVar11[4];" (assignment_expression "puVar10[4] = puVar11[4]" (subscript_expression "puVar10[4]" identifier [ number_literal ]) = (subscript_expression "puVar11[4]" identifier [ number_literal ])) ;) (expression_statement "puVar10[5] = puVar11[5];" (assignment_expression "puVar10[5] = puVar11[5]" (subscript_expression "puVar10[5]" identifier [ number_literal ]) = (subscript_expression "puVar11[5]" identifier [ number_literal ])) ;) (expression_statement "puVar10[6] = puVar11[6];" (assignment_expression "puVar10[6] = puVar11[6]" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (subscript_expression "puVar11[6]" identifier [ number_literal ])) ;) }))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }" else (compound_statement "{\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }" { (expression_statement "local_40 = (char *)*puVar11;" (assignment_expression "local_40 = (char *)*puVar11" identifier = (cast_expression "(char *)*puVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar11" * identifier))) ;) (expression_statement "iVar6 = strcmp(local_40,(char *)puVar11[-7]);" (assignment_expression "iVar6 = strcmp(local_40,(char *)puVar11[-7])" identifier = (call_expression "strcmp(local_40,(char *)puVar11[-7])" identifier (argument_list "(local_40,(char *)puVar11[-7])" ( identifier , (cast_expression "(char *)puVar11[-7]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[-7]" identifier [ number_literal ])) )))) ;) (if_statement "if (iVar6 != 0) goto LAB_00067327;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00067327;" goto statement_identifier ;)) (expression_statement "puVar10 = puVar24 + iVar3 * 7 + -7;" (assignment_expression "puVar10 = puVar24 + iVar3 * 7 + -7" identifier = (binary_expression "puVar24 + iVar3 * 7 + -7" (binary_expression "puVar24 + iVar3 * 7" identifier + (binary_expression "iVar3 * 7" identifier * number_literal)) + number_literal)) ;) (expression_statement "iVar6 = puVar10[3];" (assignment_expression "iVar6 = puVar10[3]" identifier = (subscript_expression "puVar10[3]" identifier [ number_literal ])) ;) (if_statement "if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }" if (parenthesized_expression "(((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18))" ( (binary_expression "((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)" (parenthesized_expression "((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1))" ( (binary_expression "(iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)" (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) || (parenthesized_expression "(iVar18 = puVar11[3], iVar18 == -1)" ( (comma_expression "iVar18 = puVar11[3], iVar18 == -1" (assignment_expression "iVar18 = puVar11[3]" identifier = (subscript_expression "puVar11[3]" identifier [ number_literal ])) , (binary_expression "iVar18 == -1" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar6 == iVar18)" ( (binary_expression "iVar6 == iVar18" identifier == identifier) ))) )) (compound_statement "{\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }" { (if_statement "if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }" if (parenthesized_expression "(DAT_001d1204 != 0)" ( (binary_expression "DAT_001d1204 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }" { (expression_statement "uVar14 = *puVar10;" (assignment_expression "uVar14 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);" (assignment_expression "uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5)" identifier = (call_expression "dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5)" identifier (argument_list "(0,"%P: warning, duplicate EXPORT: %s\n",5)" ( number_literal , (string_literal ""%P: warning, duplicate EXPORT: %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar16,uVar14);" (call_expression "FUN_00034d20(uVar16,uVar14)" identifier (argument_list "(uVar16,uVar14)" ( identifier , identifier ))) ;) (expression_statement "local_40 = (char *)*puVar11;" (assignment_expression "local_40 = (char *)*puVar11" identifier = (cast_expression "(char *)*puVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar11" * identifier))) ;) })) (labeled_statement "LAB_00067748:\n            iVar18 = puVar11[3];" statement_identifier : (expression_statement "iVar18 = puVar11[3];" (assignment_expression "iVar18 = puVar11[3]" identifier = (subscript_expression "puVar11[3]" identifier [ number_literal ])) ;)) (if_statement "if (iVar18 != -1) goto LAB_000672a7;" if (parenthesized_expression "(iVar18 != -1)" ( (binary_expression "iVar18 != -1" identifier != number_literal) )) (goto_statement "goto LAB_000672a7;" goto statement_identifier ;)) }) (else_clause "else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }" else (compound_statement "{\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }" { (if_statement "if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }" if (parenthesized_expression "(DAT_001d1204 != 0)" ( (binary_expression "DAT_001d1204 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }" { (expression_statement "uVar14 = *puVar10;" (assignment_expression "uVar14 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;" (assignment_expression "uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)" identifier (argument_list "(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)" ( number_literal , (string_literal ""%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar16,uVar14,iVar6,iVar18);" (call_expression "FUN_00034d20(uVar16,uVar14,iVar6,iVar18)" identifier (argument_list "(uVar16,uVar14,iVar6,iVar18)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_40 = (char *)*puVar11;" (assignment_expression "local_40 = (char *)*puVar11" identifier = (cast_expression "(char *)*puVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar11" * identifier))) ;) (goto_statement "goto LAB_00067748;" goto statement_identifier ;) })) (labeled_statement "LAB_000672a7:\n            puVar10[3] = iVar18;" statement_identifier : (expression_statement "puVar10[3] = iVar18;" (assignment_expression "puVar10[3] = iVar18" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = identifier) ;)) }))) (expression_statement "*(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);" (assignment_expression "*(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5)" (pointer_expression "*(byte *)(puVar10 + 5)" * (cast_expression "(byte *)(puVar10 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 5)" ( (binary_expression "puVar10 + 5" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5)" (pointer_expression "*(byte *)(puVar10 + 5)" * (cast_expression "(byte *)(puVar10 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 5)" ( (binary_expression "puVar10 + 5" identifier + number_literal) )))) | (pointer_expression "*(byte *)(puVar11 + 5)" * (cast_expression "(byte *)(puVar11 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 5)" ( (binary_expression "puVar11 + 5" identifier + number_literal) )))))) ;) (expression_statement "*(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);" (assignment_expression "*(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15)" (pointer_expression "*(byte *)((int)puVar10 + 0x15)" * (cast_expression "(byte *)((int)puVar10 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 0x15)" ( (binary_expression "(int)puVar10 + 0x15" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15)" (pointer_expression "*(byte *)((int)puVar10 + 0x15)" * (cast_expression "(byte *)((int)puVar10 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 0x15)" ( (binary_expression "(int)puVar10 + 0x15" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | (pointer_expression "*(byte *)((int)puVar11 + 0x15)" * (cast_expression "(byte *)((int)puVar11 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x15)" ( (binary_expression "(int)puVar11 + 0x15" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "*(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);" (assignment_expression "*(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16)" (pointer_expression "*(byte *)((int)puVar10 + 0x16)" * (cast_expression "(byte *)((int)puVar10 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 0x16)" ( (binary_expression "(int)puVar10 + 0x16" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16)" (pointer_expression "*(byte *)((int)puVar10 + 0x16)" * (cast_expression "(byte *)((int)puVar10 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 0x16)" ( (binary_expression "(int)puVar10 + 0x16" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | (pointer_expression "*(byte *)((int)puVar11 + 0x16)" * (cast_expression "(byte *)((int)puVar11 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x16)" ( (binary_expression "(int)puVar11 + 0x16" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "*(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);" (assignment_expression "*(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17)" (pointer_expression "*(byte *)((int)puVar10 + 0x17)" * (cast_expression "(byte *)((int)puVar10 + 0x17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 0x17)" ( (binary_expression "(int)puVar10 + 0x17" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17)" (pointer_expression "*(byte *)((int)puVar10 + 0x17)" * (cast_expression "(byte *)((int)puVar10 + 0x17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 0x17)" ( (binary_expression "(int)puVar10 + 0x17" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | (pointer_expression "*(byte *)((int)puVar11 + 0x17)" * (cast_expression "(byte *)((int)puVar11 + 0x17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x17)" ( (binary_expression "(int)puVar11 + 0x17" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (local_40 != (char *)0x0) {\n            free(local_40);\n          }" if (parenthesized_expression "(local_40 != (char *)0x0)" ( (binary_expression "local_40 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            free(local_40);\n          }" { (expression_statement "free(local_40);" (call_expression "free(local_40)" identifier (argument_list "(local_40)" ( identifier ))) ;) })) (if_statement "if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }" if (parenthesized_expression "((void *)puVar11[1] != (void *)0x0)" ( (binary_expression "(void *)puVar11[1] != (void *)0x0" (cast_expression "(void *)puVar11[1]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[1]" identifier [ number_literal ])) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            free((void *)puVar11[1]);\n          }" { (expression_statement "free((void *)puVar11[1]);" (call_expression "free((void *)puVar11[1])" identifier (argument_list "((void *)puVar11[1])" ( (cast_expression "(void *)puVar11[1]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[1]" identifier [ number_literal ])) ))) ;) })) (expression_statement "piVar13 = DAT_001d1218;" (assignment_expression "piVar13 = DAT_001d1218" identifier = identifier) ;) (if_statement "if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }" if (parenthesized_expression "((void *)puVar11[2] != (void *)0x0)" ( (binary_expression "(void *)puVar11[2] != (void *)0x0" (cast_expression "(void *)puVar11[2]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[2]" identifier [ number_literal ])) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }" { (expression_statement "free((void *)puVar11[2]);" (call_expression "free((void *)puVar11[2])" identifier (argument_list "((void *)puVar11[2])" ( (cast_expression "(void *)puVar11[2]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[2]" identifier [ number_literal ])) ))) ;) (expression_statement "piVar13 = DAT_001d1218;" (assignment_expression "piVar13 = DAT_001d1218" identifier = identifier) ;) })) }))) (expression_statement "local_48 = (int *)((int)local_48 + 1);" (assignment_expression "local_48 = (int *)((int)local_48 + 1)" identifier = (cast_expression "(int *)((int)local_48 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_48 + 1)" ( (binary_expression "(int)local_48 + 1" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar11 = puVar11 + 7;" (assignment_expression "puVar11 = puVar11 + 7" identifier = (binary_expression "puVar11 + 7" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)local_48 < piVar13[0xb])" ( (binary_expression "(int)local_48 < piVar13[0xb]" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "piVar13[0xb]" identifier [ number_literal ])) )) ;) (expression_statement "iVar6 = iVar3 * 8;" (assignment_expression "iVar6 = iVar3 * 8" identifier = (binary_expression "iVar3 * 8" identifier * number_literal)) ;) (expression_statement "local_48 = piVar13;" (assignment_expression "local_48 = piVar13" identifier = identifier) ;) })))) (expression_statement "local_48[0xb] = iVar3;" (assignment_expression "local_48[0xb] = iVar3" (subscript_expression "local_48[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "DAT_001d1278 = xmalloc(iVar6);" (assignment_expression "DAT_001d1278 = xmalloc(iVar6)" identifier = (call_expression "xmalloc(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);" (assignment_expression "DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2)" identifier = (cast_expression "(void *)xmalloc(DAT_001d1218[0xb] << 2)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(DAT_001d1218[0xb] << 2)" identifier (argument_list "(DAT_001d1218[0xb] << 2)" ( (binary_expression "DAT_001d1218[0xb] << 2" (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ]) << number_literal) ))))) ;) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" identifier = identifier) ;) (expression_statement "memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);" (call_expression "memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4)" identifier (argument_list "(DAT_001d1274,0,DAT_001d1218[0xb] * 4)" ( identifier , number_literal , (binary_expression "DAT_001d1218[0xb] * 4" (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ]) * number_literal) ))) ;) (expression_statement "iVar6 = puVar24[0xb];" (assignment_expression "iVar6 = puVar24[0xb]" identifier = (subscript_expression "puVar24[0xb]" identifier [ number_literal ])) ;) (expression_statement "DAT_001d1258 = 0;" (assignment_expression "DAT_001d1258 = 0" identifier = number_literal) ;) (expression_statement "DAT_001d125c = 0x10000;" (assignment_expression "DAT_001d125c = 0x10000" identifier = number_literal) ;) (expression_statement "DAT_001d126c = 0;" (assignment_expression "DAT_001d126c = 0" identifier = number_literal) ;) (expression_statement "DAT_001d1268 = 0;" (assignment_expression "DAT_001d1268 = 0" identifier = number_literal) ;) (expression_statement "DAT_001d1264 = 0;" (assignment_expression "DAT_001d1264 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }" if (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) (compound_statement "{\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }" { (expression_statement "local_48 = (int *)0x0;" (assignment_expression "local_48 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);" do (compound_statement "{\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      }" { (expression_statement "iVar6 = (int)local_48 * 0x1c;" (assignment_expression "iVar6 = (int)local_48 * 0x1c" identifier = (binary_expression "(int)local_48 * 0x1c" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);" (assignment_expression "pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6)" identifier = (pointer_expression "*(char **)(puVar24[0xc] + 4 + iVar6)" * (cast_expression "(char **)(puVar24[0xc] + 4 + iVar6)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24[0xc] + 4 + iVar6)" ( (binary_expression "puVar24[0xc] + 4 + iVar6" (binary_expression "puVar24[0xc] + 4" (subscript_expression "puVar24[0xc]" identifier [ number_literal ]) + number_literal) + identifier) ))))) ;) (expression_statement "FUN_00028f70(pcVar8);" (call_expression "FUN_00028f70(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "sVar7 = strlen(pcVar8);" (assignment_expression "sVar7 = strlen(pcVar8)" identifier = (call_expression "strlen(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier )))) ;) (expression_statement "pcVar9 = (char *)xmalloc(sVar7 + 2);" (assignment_expression "pcVar9 = (char *)xmalloc(sVar7 + 2)" identifier = (cast_expression "(char *)xmalloc(sVar7 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar7 + 2)" identifier (argument_list "(sVar7 + 2)" ( (binary_expression "sVar7 + 2" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }" if (parenthesized_expression "((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@'))" ( (binary_expression "(*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')" (parenthesized_expression "(*(int *)(DAT_001d127c + 0x14) == 0)" ( (binary_expression "*(int *)(DAT_001d127c + 0x14) == 0" (pointer_expression "*(int *)(DAT_001d127c + 0x14)" * (cast_expression "(int *)(DAT_001d127c + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d127c + 0x14)" ( (binary_expression "DAT_001d127c + 0x14" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*pcVar8 == '@')" ( (binary_expression "*pcVar8 == '@'" (pointer_expression "*pcVar8" * identifier) == (char_literal "'@'" ' character ')) ))) )) (compound_statement "{\n          strcpy(pcVar9,pcVar8);\n        }" { (expression_statement "strcpy(pcVar9,pcVar8);" (call_expression "strcpy(pcVar9,pcVar8)" identifier (argument_list "(pcVar9,pcVar8)" ( identifier , identifier ))) ;) }) (else_clause "else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }" else (compound_statement "{\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }" { (expression_statement "*pcVar9 = '_';" (assignment_expression "*pcVar9 = '_'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'_'" ' character ')) ;) (expression_statement "strcpy(pcVar9 + 1,pcVar8);" (call_expression "strcpy(pcVar9 + 1,pcVar8)" identifier (argument_list "(pcVar9 + 1,pcVar8)" ( (binary_expression "pcVar9 + 1" identifier + number_literal) , identifier ))) ;) (expression_statement "uVar14 = xstrdup(pcVar9);" (assignment_expression "uVar14 = xstrdup(pcVar9)" identifier = (call_expression "xstrdup(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) ;) (expression_statement "FUN_00028f70(uVar14);" (call_expression "FUN_00028f70(uVar14)" identifier (argument_list "(uVar14)" ( identifier ))) ;) }))) (expression_statement "iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);" (assignment_expression "iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1)" ( (pointer_expression "*(undefined4 *)(param_2 + 0x20)" * (cast_expression "(undefined4 *)(param_2 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) , identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }" { (expression_statement "pcVar15 = strchr(pcVar8,0x2e);" (assignment_expression "pcVar15 = strchr(pcVar8,0x2e)" identifier = (call_expression "strchr(pcVar8,0x2e)" identifier (argument_list "(pcVar8,0x2e)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\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 "{\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }" { (labeled_statement "LAB_00067968:\n            puVar24 = DAT_001d1218;" statement_identifier : (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" identifier = identifier) ;)) (expression_statement "DAT_001d126c = DAT_001d126c + 1;" (assignment_expression "DAT_001d126c = DAT_001d126c + 1" identifier = (binary_expression "DAT_001d126c + 1" identifier + number_literal)) ;) (expression_statement "iVar6 = iVar6 + DAT_001d1218[0xc];" (assignment_expression "iVar6 = iVar6 + DAT_001d1218[0xc]" identifier = (binary_expression "iVar6 + DAT_001d1218[0xc]" identifier + (subscript_expression "DAT_001d1218[0xc]" identifier [ number_literal ]))) ;) (if_statement "if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }" if (parenthesized_expression "(*(char *)(iVar6 + 0x16) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0x16) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x16)" * (cast_expression "(char *)(iVar6 + 0x16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x16)" ( (binary_expression "iVar6 + 0x16" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }" { (expression_statement "DAT_001d1268 = DAT_001d1268 + 1;" (assignment_expression "DAT_001d1268 = DAT_001d1268 + 1" identifier = (binary_expression "DAT_001d1268 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)(iVar6 + 0x18) = 1;" (assignment_expression "*(undefined1 *)(iVar6 + 0x18) = 1" (pointer_expression "*(undefined1 *)(iVar6 + 0x18)" * (cast_expression "(undefined1 *)(iVar6 + 0x18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00067863;" goto statement_identifier ;) })) (expression_statement "pcVar15 = "%X%P: cannot export %s: symbol not found\n";" (assignment_expression "pcVar15 = "%X%P: cannot export %s: symbol not found\n"" identifier = (string_literal ""%X%P: cannot export %s: symbol not found\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);" statement_identifier : (expression_statement "uVar14 = dcgettext(0,pcVar15,5);" (assignment_expression "uVar14 = dcgettext(0,pcVar15,5)" identifier = (call_expression "dcgettext(0,pcVar15,5)" identifier (argument_list "(0,pcVar15,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_00034d20(uVar14,pcVar8);" (call_expression "FUN_00034d20(uVar14,pcVar8)" identifier (argument_list "(uVar14,pcVar8)" ( identifier , identifier ))) ;) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" identifier = identifier) ;) }) (else_clause "else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }" else (compound_statement "{\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }" { (expression_statement "cVar22 = *(char *)(iVar3 + 0xc);" (assignment_expression "cVar22 = *(char *)(iVar3 + 0xc)" identifier = (pointer_expression "*(char *)(iVar3 + 0xc)" * (cast_expression "(char *)(iVar3 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }" if (parenthesized_expression "((cVar22 - 3U & 0xfd) == 0)" ( (binary_expression "(cVar22 - 3U & 0xfd) == 0" (parenthesized_expression "(cVar22 - 3U & 0xfd)" ( (binary_expression "cVar22 - 3U & 0xfd" (binary_expression "cVar22 - 3U" identifier - number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }" { (expression_statement "DAT_001d126c = DAT_001d126c + 1;" (assignment_expression "DAT_001d126c = DAT_001d126c + 1" identifier = (binary_expression "DAT_001d126c + 1" identifier + number_literal)) ;) (expression_statement "iVar6 = iVar6 + DAT_001d1218[0xc];" (assignment_expression "iVar6 = iVar6 + DAT_001d1218[0xc]" identifier = (binary_expression "iVar6 + DAT_001d1218[0xc]" identifier + (subscript_expression "DAT_001d1218[0xc]" identifier [ number_literal ]))) ;) (if_statement "if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }" if (parenthesized_expression "(*(char *)(iVar6 + 0x16) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0x16) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x16)" * (cast_expression "(char *)(iVar6 + 0x16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x16)" ( (binary_expression "iVar6 + 0x16" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }" { (expression_statement "DAT_001d1268 = DAT_001d1268 + 1;" (assignment_expression "DAT_001d1268 = DAT_001d1268 + 1" identifier = (binary_expression "DAT_001d1268 + 1" identifier + number_literal)) ;) })) (expression_statement "piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);" (assignment_expression "piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4)" identifier = (cast_expression "(int *)((int)DAT_001d1274 + (int)local_48 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)DAT_001d1274 + (int)local_48 * 4)" ( (binary_expression "(int)DAT_001d1274 + (int)local_48 * 4" (cast_expression "(int)DAT_001d1274" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_48 * 4" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (if_statement "if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }" if (parenthesized_expression "(cVar22 == '\x03')" ( (binary_expression "cVar22 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }" { (expression_statement "*piVar13 = *(int *)(iVar3 + 0x14);" (assignment_expression "*piVar13 = *(int *)(iVar3 + 0x14)" (pointer_expression "*piVar13" * identifier) = (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }" else (compound_statement "{\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }" { (expression_statement "*piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);" (assignment_expression "*piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4)" (pointer_expression "*piVar13" * identifier) = (pointer_expression "*(int *)(*(int *)(iVar3 + 0x14) + 4)" * (cast_expression "(int *)(*(int *)(iVar3 + 0x14) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0x14) + 4)" ( (binary_expression "*(int *)(iVar3 + 0x14) + 4" (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (labeled_statement "LAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);" statement_identifier : (expression_statement "iVar6 = *(int *)(iVar6 + 0xc);" (assignment_expression "iVar6 = *(int *)(iVar6 + 0xc)" identifier = (pointer_expression "*(int *)(iVar6 + 0xc)" * (cast_expression "(int *)(iVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) ))))) ;)) (if_statement "if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }" if (parenthesized_expression "(iVar6 != -1)" ( (binary_expression "iVar6 != -1" identifier != number_literal) )) (compound_statement "{\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }" { (if_statement "if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }" if (parenthesized_expression "(DAT_001d1258 < iVar6)" ( (binary_expression "DAT_001d1258 < iVar6" identifier < identifier) )) (compound_statement "{\n                DAT_001d1258 = iVar6;\n              }" { (expression_statement "DAT_001d1258 = iVar6;" (assignment_expression "DAT_001d1258 = iVar6" identifier = identifier) ;) })) (if_statement "if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }" if (parenthesized_expression "(iVar6 < DAT_001d125c)" ( (binary_expression "iVar6 < DAT_001d125c" identifier < identifier) )) (compound_statement "{\n                DAT_001d125c = iVar6;\n              }" { (expression_statement "DAT_001d125c = iVar6;" (assignment_expression "DAT_001d125c = iVar6" identifier = identifier) ;) })) (expression_statement "DAT_001d1264 = DAT_001d1264 + 1;" (assignment_expression "DAT_001d1264 = DAT_001d1264 + 1" identifier = (binary_expression "DAT_001d1264 + 1" identifier + number_literal)) ;) })) }) (else_clause "else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }" else (compound_statement "{\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }" { (expression_statement "pcVar15 = strchr(pcVar8,0x2e);" (assignment_expression "pcVar15 = strchr(pcVar8,0x2e)" identifier = (call_expression "strchr(pcVar8,0x2e)" identifier (argument_list "(pcVar8,0x2e)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar15 != (char *)0x0) goto LAB_00067968;" 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_00067968;" goto statement_identifier ;)) (if_statement "if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }" if (parenthesized_expression "(cVar22 == '\x01')" ( (binary_expression "cVar22 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }" { (expression_statement "pcVar15 = "%X%P: cannot export %s: symbol not defined\n";" (assignment_expression "pcVar15 = "%X%P: cannot export %s: symbol not defined\n"" identifier = (string_literal ""%X%P: cannot export %s: symbol not defined\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_000679ab;" goto statement_identifier ;) })) (expression_statement "uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);" (assignment_expression "uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5)" identifier (argument_list "(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5)" ( number_literal , (string_literal ""%X%P: cannot export %s: symbol wrong type (%d vs %d)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar14,pcVar8,cVar22,3);" (call_expression "FUN_00034d20(uVar14,pcVar8,cVar22,3)" identifier (argument_list "(uVar14,pcVar8,cVar22,3)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" identifier = identifier) ;) }))) }))) (expression_statement "free(pcVar9);" (call_expression "free(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "local_48 = (int *)((int)local_48 + 1);" (assignment_expression "local_48 = (int *)((int)local_48 + 1)" identifier = (cast_expression "(int *)((int)local_48 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_48 + 1)" ( (binary_expression "(int)local_48 + 1" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar6 = puVar24[0xb];" (assignment_expression "iVar6 = puVar24[0xb]" identifier = (subscript_expression "puVar24[0xb]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "((int)local_48 < iVar6)" ( (binary_expression "(int)local_48 < iVar6" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })) (labeled_statement "joined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }" statement_identifier : (if_statement "if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }" { (labeled_statement "LAB_0006736e:\n      bVar2 = *param_2;" statement_identifier : (expression_statement "bVar2 = *param_2;" (assignment_expression "bVar2 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;)) (goto_statement "goto LAB_00067375;" goto statement_identifier ;) }))) }))) (expression_statement "DAT_001d1260 = (char *)*puVar24;" (assignment_expression "DAT_001d1260 = (char *)*puVar24" identifier = (cast_expression "(char *)*puVar24" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar24" * identifier))) ;) (if_statement "if (DAT_001d1260 == (char *)0x0) {\n    DAT_001d1260 = (char *)*param_1;\n    cVar22 = *DAT_001d1260;\n    if (cVar22 != '\0') {\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }\n  }" if (parenthesized_expression "(DAT_001d1260 == (char *)0x0)" ( (binary_expression "DAT_001d1260 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_001d1260 = (char *)*param_1;\n    cVar22 = *DAT_001d1260;\n    if (cVar22 != '\0') {\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }\n  }" { (expression_statement "DAT_001d1260 = (char *)*param_1;" (assignment_expression "DAT_001d1260 = (char *)*param_1" identifier = (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "cVar22 = *DAT_001d1260;" (assignment_expression "cVar22 = *DAT_001d1260" identifier = (pointer_expression "*DAT_001d1260" * identifier)) ;) (if_statement "if (cVar22 != '\0') {\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }" if (parenthesized_expression "(cVar22 != '\0')" ( (binary_expression "cVar22 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }" { (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "pcVar9 = DAT_001d1260;" (assignment_expression "pcVar9 = DAT_001d1260" identifier = identifier) ;) (expression_statement "pcVar8 = DAT_001d1260;" (assignment_expression "pcVar8 = DAT_001d1260" identifier = identifier) ;) (do_statement "do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');" do (compound_statement "{\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      }" { (expression_statement "bVar25 = cVar22 == '\\';" (assignment_expression "bVar25 = cVar22 == '\\'" identifier = (binary_expression "cVar22 == '\\'" identifier == (char_literal "'\\'" ' escape_sequence '))) ;) (expression_statement "bVar27 = cVar22 == '/';" (assignment_expression "bVar27 = cVar22 == '/'" identifier = (binary_expression "cVar22 == '/'" identifier == (char_literal "'/'" ' character '))) ;) (expression_statement "bVar28 = cVar22 == ':';" (assignment_expression "bVar28 = cVar22 == ':'" identifier = (binary_expression "cVar22 == ':'" identifier == (char_literal "':'" ' character '))) ;) (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) (expression_statement "cVar22 = *pcVar9;" (assignment_expression "cVar22 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (if_statement "if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }" if (parenthesized_expression "((bVar25 || bVar27) || bVar28)" ( (binary_expression "(bVar25 || bVar27) || bVar28" (parenthesized_expression "(bVar25 || bVar27)" ( (binary_expression "bVar25 || bVar27" identifier || identifier) )) || identifier) )) (compound_statement "{\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }" { (expression_statement "bVar26 = (bVar25 || bVar27) || bVar28;" (assignment_expression "bVar26 = (bVar25 || bVar27) || bVar28" identifier = (binary_expression "(bVar25 || bVar27) || bVar28" (parenthesized_expression "(bVar25 || bVar27)" ( (binary_expression "bVar25 || bVar27" identifier || identifier) )) || identifier)) ;) (expression_statement "pcVar8 = pcVar9;" (assignment_expression "pcVar8 = pcVar9" identifier = identifier) ;) })) }) while (parenthesized_expression "(cVar22 != '\0')" ( (binary_expression "cVar22 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }" if (parenthesized_expression "(bVar26)" ( identifier )) (compound_statement "{\n        DAT_001d1260 = pcVar8;\n      }" { (expression_statement "DAT_001d1260 = pcVar8;" (assignment_expression "DAT_001d1260 = pcVar8" identifier = identifier) ;) })) })) })) (if_statement "if ((DAT_001d1264 == 0) || (DAT_001d1258 <= DAT_001d126c)) {\n    DAT_001d125c = 1;\n    DAT_001d1258 = DAT_001d126c;\n  }\n  else {\n    iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;\n    if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }\n  }" if (parenthesized_expression "((DAT_001d1264 == 0) || (DAT_001d1258 <= DAT_001d126c))" ( (binary_expression "(DAT_001d1264 == 0) || (DAT_001d1258 <= DAT_001d126c)" (parenthesized_expression "(DAT_001d1264 == 0)" ( (binary_expression "DAT_001d1264 == 0" identifier == number_literal) )) || (parenthesized_expression "(DAT_001d1258 <= DAT_001d126c)" ( (binary_expression "DAT_001d1258 <= DAT_001d126c" identifier <= identifier) ))) )) (compound_statement "{\n    DAT_001d125c = 1;\n    DAT_001d1258 = DAT_001d126c;\n  }" { (expression_statement "DAT_001d125c = 1;" (assignment_expression "DAT_001d125c = 1" identifier = number_literal) ;) (expression_statement "DAT_001d1258 = DAT_001d126c;" (assignment_expression "DAT_001d1258 = DAT_001d126c" identifier = identifier) ;) }) (else_clause "else {\n    iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;\n    if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }\n  }" else (compound_statement "{\n    iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;\n    if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }\n  }" { (expression_statement "iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;" (assignment_expression "iVar6 = (DAT_001d1258 - DAT_001d126c) + 1" identifier = (binary_expression "(DAT_001d1258 - DAT_001d126c) + 1" (parenthesized_expression "(DAT_001d1258 - DAT_001d126c)" ( (binary_expression "DAT_001d1258 - DAT_001d126c" identifier - identifier) )) + number_literal)) ;) (if_statement "if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }" if (parenthesized_expression "(iVar6 < DAT_001d125c)" ( (binary_expression "iVar6 < DAT_001d125c" identifier < identifier) )) (compound_statement "{\n      DAT_001d125c = iVar6;\n    }" { (expression_statement "DAT_001d125c = iVar6;" (assignment_expression "DAT_001d125c = iVar6" identifier = identifier) ;) })) }))) (expression_statement "DAT_001d1270 = (DAT_001d1258 - DAT_001d125c) + 1;" (assignment_expression "DAT_001d1270 = (DAT_001d1258 - DAT_001d125c) + 1" identifier = (binary_expression "(DAT_001d1258 - DAT_001d125c) + 1" (parenthesized_expression "(DAT_001d1258 - DAT_001d125c)" ( (binary_expression "DAT_001d1258 - DAT_001d125c" identifier - identifier) )) + number_literal)) ;) (expression_statement "puVar11 = (undefined4 *)xmalloc(DAT_001d1270 * 4);" (assignment_expression "puVar11 = (undefined4 *)xmalloc(DAT_001d1270 * 4)" identifier = (cast_expression "(undefined4 *)xmalloc(DAT_001d1270 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(DAT_001d1270 * 4)" identifier (argument_list "(DAT_001d1270 * 4)" ( (binary_expression "DAT_001d1270 * 4" identifier * number_literal) ))))) ;) (expression_statement "puVar24 = puVar11 + DAT_001d1270;" (assignment_expression "puVar24 = puVar11 + DAT_001d1270" identifier = (binary_expression "puVar11 + DAT_001d1270" identifier + identifier)) ;) (expression_statement "DAT_001d1254 = puVar11;" (assignment_expression "DAT_001d1254 = puVar11" identifier = identifier) ;) (if_statement "if (0 < DAT_001d1270) {\n    do {\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    } while (puVar24 != puVar11);\n  }" if (parenthesized_expression "(0 < DAT_001d1270)" ( (binary_expression "0 < DAT_001d1270" number_literal < identifier) )) (compound_statement "{\n    do {\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    } while (puVar24 != puVar11);\n  }" { (do_statement "do {\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    } while (puVar24 != puVar11);" do (compound_statement "{\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    }" { (expression_statement "*puVar11 = 0xffffffff;" (assignment_expression "*puVar11 = 0xffffffff" (pointer_expression "*puVar11" * identifier) = number_literal) ;) (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar24 != puVar11)" ( (binary_expression "puVar24 != puVar11" identifier != identifier) )) ;) })) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" identifier = identifier) ;) (expression_statement "local_3c = DAT_001d125c;" (assignment_expression "local_3c = DAT_001d125c" identifier = identifier) ;) (if_statement "if ((int)DAT_001d1218[0xb] < 1) {\n    local_44 = 0;\n    iVar6 = DAT_001d125c;\n    goto LAB_00067580;\n  }" if (parenthesized_expression "((int)DAT_001d1218[0xb] < 1)" ( (binary_expression "(int)DAT_001d1218[0xb] < 1" (cast_expression "(int)DAT_001d1218[0xb]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n    local_44 = 0;\n    iVar6 = DAT_001d125c;\n    goto LAB_00067580;\n  }" { (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = DAT_001d125c;" (assignment_expression "iVar6 = DAT_001d125c" identifier = identifier) ;) (goto_statement "goto LAB_00067580;" goto statement_identifier ;) })) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_40 = (char *)0x0;" (assignment_expression "local_40 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = DAT_001d1218[0xc];" (assignment_expression "iVar3 = DAT_001d1218[0xc]" identifier = (subscript_expression "DAT_001d1218[0xc]" identifier [ number_literal ])) ;) (do_statement "do {\n    iVar6 = (int)local_40 * 0x1c;\n    puVar24 = (undefined4 *)(iVar3 + iVar6);\n    if ((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))\n    {\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }\n    else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }\n    if (*(char *)(puVar24 + 6) != '\0') {\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }\n    pvVar4 = DAT_001d1274;\n    puVar24 = DAT_001d1254;\n    local_40 = (char *)((int)local_40 + 1);\n  } while ((int)local_40 < local_48[0xb]);" do (compound_statement "{\n    iVar6 = (int)local_40 * 0x1c;\n    puVar24 = (undefined4 *)(iVar3 + iVar6);\n    if ((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))\n    {\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }\n    else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }\n    if (*(char *)(puVar24 + 6) != '\0') {\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }\n    pvVar4 = DAT_001d1274;\n    puVar24 = DAT_001d1254;\n    local_40 = (char *)((int)local_40 + 1);\n  }" { (expression_statement "iVar6 = (int)local_40 * 0x1c;" (assignment_expression "iVar6 = (int)local_40 * 0x1c" identifier = (binary_expression "(int)local_40 * 0x1c" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puVar24 = (undefined4 *)(iVar3 + iVar6);" (assignment_expression "puVar24 = (undefined4 *)(iVar3 + iVar6)" identifier = (cast_expression "(undefined4 *)(iVar3 + iVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + iVar6)" ( (binary_expression "iVar3 + iVar6" identifier + identifier) )))) ;) (if_statement "if ((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))\n    {\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }\n    else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }" if (parenthesized_expression "((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))" ( (binary_expression "(*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0')" (parenthesized_expression "(*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0)" ( (binary_expression "*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0" (pointer_expression "*(int *)((int)DAT_001d1274 + (int)local_40 * 4)" * (cast_expression "(int *)((int)DAT_001d1274 + (int)local_40 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)DAT_001d1274 + (int)local_40 * 4)" ( (binary_expression "(int)DAT_001d1274 + (int)local_40 * 4" (cast_expression "(int)DAT_001d1274" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_40 * 4" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) == number_literal) )) && (parenthesized_expression "(*(char *)(puVar24 + 6) == '\0')" ( (binary_expression "*(char *)(puVar24 + 6) == '\0'" (pointer_expression "*(char *)(puVar24 + 6)" * (cast_expression "(char *)(puVar24 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 6)" ( (binary_expression "puVar24 + 6" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }" { (expression_statement "iVar3 = local_48[0xc];" (assignment_expression "iVar3 = local_48[0xc]" identifier = (subscript_expression "local_48[0xc]" identifier [ number_literal ])) ;) (expression_statement "puVar24 = (undefined4 *)(iVar6 + iVar3);" (assignment_expression "puVar24 = (undefined4 *)(iVar6 + iVar3)" identifier = (cast_expression "(undefined4 *)(iVar6 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar3)" ( (binary_expression "iVar6 + iVar3" identifier + identifier) )))) ;) }) (else_clause "else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }" else (compound_statement "{\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }" { (expression_statement "iVar18 = puVar24[3];" (assignment_expression "iVar18 = puVar24[3]" identifier = (subscript_expression "puVar24[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }" if (parenthesized_expression "(iVar18 != -1)" ( (binary_expression "iVar18 != -1" identifier != number_literal) )) (compound_statement "{\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }" { (expression_statement "iVar21 = iVar18 - local_3c;" (assignment_expression "iVar21 = iVar18 - local_3c" identifier = (binary_expression "iVar18 - local_3c" identifier - identifier)) ;) (expression_statement "piVar13 = DAT_001d1254 + iVar21;" (assignment_expression "piVar13 = DAT_001d1254 + iVar21" identifier = (binary_expression "DAT_001d1254 + iVar21" identifier + identifier)) ;) (if_statement "if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }" if (parenthesized_expression "(*piVar13 != -1)" ( (binary_expression "*piVar13 != -1" (pointer_expression "*piVar13" * identifier) != number_literal) )) (compound_statement "{\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }" { (expression_statement "uVar14 = *puVar24;" (assignment_expression "uVar14 = *puVar24" identifier = (pointer_expression "*puVar24" * identifier)) ;) (expression_statement "uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);" (assignment_expression "uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + *piVar13 * 0x1c)" * (cast_expression "(undefined4 *)(iVar3 + *piVar13 * 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + *piVar13 * 0x1c)" ( (binary_expression "iVar3 + *piVar13 * 0x1c" identifier + (binary_expression "*piVar13 * 0x1c" (pointer_expression "*piVar13" * identifier) * number_literal)) ))))) ;) (expression_statement "uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5)" identifier (argument_list "(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5)" ( number_literal , (string_literal ""%X%P: error: ordinal used twice: %d (%s vs %s)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar12,iVar18,uVar14,uVar16);" (call_expression "FUN_00034d20(uVar12,iVar18,uVar14,uVar16)" identifier (argument_list "(uVar12,iVar18,uVar14,uVar16)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_3c = DAT_001d125c;" (assignment_expression "local_3c = DAT_001d125c" identifier = identifier) ;) (expression_statement "piVar13 = DAT_001d1254 + iVar21;" (assignment_expression "piVar13 = DAT_001d1254 + iVar21" identifier = (binary_expression "DAT_001d1254 + iVar21" identifier + identifier)) ;) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" identifier = identifier) ;) })) (expression_statement "*piVar13 = (int)local_40;" (assignment_expression "*piVar13 = (int)local_40" (pointer_expression "*piVar13" * identifier) = (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "iVar3 = local_48[0xc];" (assignment_expression "iVar3 = local_48[0xc]" identifier = (subscript_expression "local_48[0xc]" identifier [ number_literal ])) ;) (expression_statement "puVar24 = (undefined4 *)(iVar6 + iVar3);" (assignment_expression "puVar24 = (undefined4 *)(iVar6 + iVar3)" identifier = (cast_expression "(undefined4 *)(iVar6 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar3)" ( (binary_expression "iVar6 + iVar3" identifier + identifier) )))) ;) (if_statement "if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }" if (parenthesized_expression "((char *)puVar24[2] == (char *)0x0)" ( (binary_expression "(char *)puVar24[2] == (char *)0x0" (cast_expression "(char *)puVar24[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar24[2]" identifier [ number_literal ])) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }" { (expression_statement "sVar7 = strlen((char *)*puVar24);" (assignment_expression "sVar7 = strlen((char *)*puVar24)" identifier = (call_expression "strlen((char *)*puVar24)" identifier (argument_list "((char *)*puVar24)" ( (cast_expression "(char *)*puVar24" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar24" * identifier)) )))) ;) (expression_statement "local_44 = sVar7 + local_44 + 1;" (assignment_expression "local_44 = sVar7 + local_44 + 1" identifier = (binary_expression "sVar7 + local_44 + 1" (binary_expression "sVar7 + local_44" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }" else (compound_statement "{\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }" { (expression_statement "sVar7 = strlen((char *)puVar24[2]);" (assignment_expression "sVar7 = strlen((char *)puVar24[2])" identifier = (call_expression "strlen((char *)puVar24[2])" identifier (argument_list "((char *)puVar24[2])" ( (cast_expression "(char *)puVar24[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar24[2]" identifier [ number_literal ])) )))) ;) (expression_statement "local_44 = sVar7 + local_44 + 1;" (assignment_expression "local_44 = sVar7 + local_44 + 1" identifier = (binary_expression "sVar7 + local_44 + 1" (binary_expression "sVar7 + local_44" identifier + identifier) + number_literal)) ;) }))) }))) (if_statement "if (*(char *)(puVar24 + 6) != '\0') {\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }" if (parenthesized_expression "(*(char *)(puVar24 + 6) != '\0')" ( (binary_expression "*(char *)(puVar24 + 6) != '\0'" (pointer_expression "*(char *)(puVar24 + 6)" * (cast_expression "(char *)(puVar24 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 6)" ( (binary_expression "puVar24 + 6" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }" { (expression_statement "sVar7 = strlen((char *)puVar24[1]);" (assignment_expression "sVar7 = strlen((char *)puVar24[1])" identifier = (call_expression "strlen((char *)puVar24[1])" identifier (argument_list "((char *)puVar24[1])" ( (cast_expression "(char *)puVar24[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar24[1]" identifier [ number_literal ])) )))) ;) (expression_statement "local_44 = local_44 + 1 + sVar7;" (assignment_expression "local_44 = local_44 + 1 + sVar7" identifier = (binary_expression "local_44 + 1 + sVar7" (binary_expression "local_44 + 1" identifier + number_literal) + identifier)) ;) })) (expression_statement "pvVar4 = DAT_001d1274;" (assignment_expression "pvVar4 = DAT_001d1274" identifier = identifier) ;) (expression_statement "puVar24 = DAT_001d1254;" (assignment_expression "puVar24 = DAT_001d1254" identifier = identifier) ;) (expression_statement "local_40 = (char *)((int)local_40 + 1);" (assignment_expression "local_40 = (char *)((int)local_40 + 1)" identifier = (cast_expression "(char *)((int)local_40 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_40 + 1)" ( (binary_expression "(int)local_40 + 1" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)local_40 < local_48[0xb])" ( (binary_expression "(int)local_40 < local_48[0xb]" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "local_48[0xb]" identifier [ number_literal ])) )) ;) (expression_statement "iVar6 = local_3c;" (assignment_expression "iVar6 = local_3c" identifier = identifier) ;) (if_statement "if (local_48[0xb] < 1) goto LAB_00067580;" if (parenthesized_expression "(local_48[0xb] < 1)" ( (binary_expression "local_48[0xb] < 1" (subscript_expression "local_48[0xb]" identifier [ number_literal ]) < number_literal) )) (goto_statement "goto LAB_00067580;" goto statement_identifier ;)) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "piVar13 = (int *)(iVar3 + 0xc);" (assignment_expression "piVar13 = (int *)(iVar3 + 0xc)" identifier = (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) ;) (do_statement "do {\n    if (*(int *)((int)pvVar4 + iVar18 * 4) == 0) {\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }\n    iVar18 = iVar18 + 1;\n    piVar13 = piVar13 + 7;\n    if (local_48[0xb] <= iVar18) {\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }\n  } while( true );" do (compound_statement "{\n    if (*(int *)((int)pvVar4 + iVar18 * 4) == 0) {\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }\n    iVar18 = iVar18 + 1;\n    piVar13 = piVar13 + 7;\n    if (local_48[0xb] <= iVar18) {\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }\n  }" { (if_statement "if (*(int *)((int)pvVar4 + iVar18 * 4) == 0) {\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }" if (parenthesized_expression "(*(int *)((int)pvVar4 + iVar18 * 4) == 0)" ( (binary_expression "*(int *)((int)pvVar4 + iVar18 * 4) == 0" (pointer_expression "*(int *)((int)pvVar4 + iVar18 * 4)" * (cast_expression "(int *)((int)pvVar4 + iVar18 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + iVar18 * 4)" ( (binary_expression "(int)pvVar4 + iVar18 * 4" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar18 * 4" identifier * number_literal)) )))) == number_literal) )) (compound_statement "{\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }" { (if_statement "if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }" if (parenthesized_expression "((char)piVar13[3] != '\0')" ( (binary_expression "(char)piVar13[3] != '\0'" (cast_expression "(char)piVar13[3]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar13[3]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }" { (expression_statement "iVar3 = *piVar13;" (assignment_expression "iVar3 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (goto_statement "goto joined_r0x000676c3;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }" else (compound_statement "{\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }" { (expression_statement "iVar3 = *piVar13;" (assignment_expression "iVar3 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (labeled_statement "joined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }" statement_identifier : (if_statement "if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }" { (expression_statement "piVar17 = puVar24 + (iVar6 - local_3c);" (assignment_expression "piVar17 = puVar24 + (iVar6 - local_3c)" identifier = (binary_expression "puVar24 + (iVar6 - local_3c)" identifier + (parenthesized_expression "(iVar6 - local_3c)" ( (binary_expression "iVar6 - local_3c" identifier - identifier) )))) ;) (if_statement "if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }" if (parenthesized_expression "(*piVar17 != -1)" ( (binary_expression "*piVar17 != -1" (pointer_expression "*piVar17" * identifier) != number_literal) )) (compound_statement "{\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }" { (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "piVar17 = puVar24 + (iVar6 - local_3c);" (assignment_expression "piVar17 = puVar24 + (iVar6 - local_3c)" identifier = (binary_expression "puVar24 + (iVar6 - local_3c)" identifier + (parenthesized_expression "(iVar6 - local_3c)" ( (binary_expression "iVar6 - local_3c" identifier - identifier) )))) ;) (while_statement "while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }" while (parenthesized_expression "(*piVar17 != -1)" ( (binary_expression "*piVar17 != -1" (pointer_expression "*piVar17" * identifier) != number_literal) )) (compound_statement "{\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }" { (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "piVar17 = piVar17 + 1;" (assignment_expression "piVar17 = piVar17 + 1" identifier = (binary_expression "piVar17 + 1" identifier + number_literal)) ;) })) })) (expression_statement "*piVar17 = iVar18;" (assignment_expression "*piVar17 = iVar18" (pointer_expression "*piVar17" * identifier) = identifier) ;) (expression_statement "*piVar13 = iVar6;" (assignment_expression "*piVar13 = iVar6" (pointer_expression "*piVar13" * identifier) = identifier) ;) }))) }))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "piVar13 = piVar13 + 7;" (assignment_expression "piVar13 = piVar13 + 7" identifier = (binary_expression "piVar13 + 7" identifier + number_literal)) ;) (if_statement "if (local_48[0xb] <= iVar18) {\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }" if (parenthesized_expression "(local_48[0xb] <= iVar18)" ( (binary_expression "local_48[0xb] <= iVar18" (subscript_expression "local_48[0xb]" identifier [ number_literal ]) <= identifier) )) (compound_statement "{\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }" { (labeled_statement "LAB_00067580:\n      iVar3 = DAT_001d1258;" statement_identifier : (expression_statement "iVar3 = DAT_001d1258;" (assignment_expression "iVar3 = DAT_001d1258" identifier = identifier) ;)) (if_statement "if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }" if (parenthesized_expression "((0xffff < DAT_001d1258) || (0xffff < iVar6))" ( (binary_expression "(0xffff < DAT_001d1258) || (0xffff < iVar6)" (parenthesized_expression "(0xffff < DAT_001d1258)" ( (binary_expression "0xffff < DAT_001d1258" number_literal < identifier) )) || (parenthesized_expression "(0xffff < iVar6)" ( (binary_expression "0xffff < iVar6" number_literal < identifier) ))) )) (compound_statement "{\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }" { (expression_statement "uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);" (assignment_expression "uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5)" identifier (argument_list "(0,"%X%P: error: export ordinal too large: %d\n",5)" ( number_literal , (string_literal ""%X%P: error: export ordinal too large: %d\n"" " string_content escape_sequence ") , number_literal )))) ;) (if_statement "if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }" if (parenthesized_expression "(iVar6 <= iVar3)" ( (binary_expression "iVar6 <= iVar3" identifier <= identifier) )) (compound_statement "{\n          iVar6 = iVar3;\n        }" { (expression_statement "iVar6 = iVar3;" (assignment_expression "iVar6 = iVar3" identifier = identifier) ;) })) (expression_statement "FUN_00034d20(uVar14,iVar6);" (call_expression "FUN_00034d20(uVar14,iVar6)" identifier (argument_list "(uVar14,iVar6)" ( identifier , identifier ))) ;) })) (expression_statement "iVar6 = DAT_001d1268;" (assignment_expression "iVar6 = DAT_001d1268" identifier = identifier) ;) (expression_statement "sVar7 = strlen(DAT_001d1260);" (assignment_expression "sVar7 = strlen(DAT_001d1260)" identifier = (call_expression "strlen(DAT_001d1260)" identifier (argument_list "(DAT_001d1260)" ( identifier )))) ;) (expression_statement "DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;" (assignment_expression "DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7" identifier = (binary_expression "local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7" (binary_expression "local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4" (binary_expression "local_44 + iVar6 * 6 + 0x29" (binary_expression "local_44 + iVar6 * 6" identifier + (binary_expression "iVar6 * 6" identifier * number_literal)) + number_literal) + (binary_expression "DAT_001d1270 * 4" identifier * number_literal)) + identifier)) ;) (expression_statement "FUN_00061a40();" (call_expression "FUN_00061a40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00066c30(DAT_001d12a0);" (call_expression "FUN_00066c30(DAT_001d12a0)" identifier (argument_list "(DAT_001d12a0)" ( identifier ))) ;) (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "code_r0x00066da5:\n  piVar13 = (int *)*piVar13;" statement_identifier : (expression_statement "piVar13 = (int *)*piVar13;" (assignment_expression "piVar13 = (int *)*piVar13" identifier = (cast_expression "(int *)*piVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;)) (expression_statement "**(uint **)(iVar6 + 0x14) = *puVar1;" (assignment_expression "**(uint **)(iVar6 + 0x14) = *puVar1" (pointer_expression "**(uint **)(iVar6 + 0x14)" * (pointer_expression "*(uint **)(iVar6 + 0x14)" * (cast_expression "(uint **)(iVar6 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) ))))) = (pointer_expression "*puVar1" * identifier)) ;) (goto_statement "goto joined_r0x00066d64;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid pe_dll_build_sections(bfd *abfd,bfd_link_info *info)\n\n{\n  uint *puVar1;\n  bfd_symbol **ppbVar2;\n  bfd_symbol **ppbVar3;\n  bfd *pbVar4;\n  char cVar5;\n  char cVar6;\n  undefined3 uVar7;\n  bfd_section **ppbVar8;\n  byte bVar9;\n  int iVar10;\n  char *pcVar11;\n  bfd_section *pbVar12;\n  bfd_symbol *pbVar13;\n  size_t sVar14;\n  char *pcVar15;\n  def_file *pdVar16;\n  def_file_export *pdVar17;\n  int *piVar18;\n  def_file_export *pdVar19;\n  char *pcVar20;\n  int *piVar21;\n  int iVar22;\n  int *piVar23;\n  def_file *pdVar24;\n  int iVar25;\n  def_file_export *pdVar26;\n  def_file_aligncomm *pdVar27;\n  byte *pbVar28;\n  char cVar29;\n  byte *pbVar30;\n  byte *pbVar31;\n  bool bVar32;\n  bool bVar33;\n  bool bVar34;\n  bool bVar35;\n  byte bVar36;\n  def_file *local_48;\n  bfd *local_44;\n  char *local_40;\n  int local_3c;\n  int is_dup;\n  undefined4 uStack_14;\n  \n  bVar36 = 0;\n  uStack_14 = 0x66ca9;\n  pe_dll_id_target(abfd->xvec->name);\n  pe_output_file_set_long_section_names(abfd);\n  if (pe_def_file == (def_file *)0x0) {\n    pe_def_file = def_file_empty();\n  }\n  for (pbVar4 = info->input_bfds; pbVar4 != (bfd *)0x0; pbVar4 = (pbVar4->link).next) {\n    iVar10 = bfd_get_section_by_name(pbVar4,".drectve");\n    if (iVar10 != 0) {\n      iVar25 = *(int *)(iVar10 + 0x2c);\n      pcVar11 = (char *)xmalloc(iVar25);\n      bfd_get_section_contents(pbVar4,iVar10,pcVar11,0,0,iVar25,iVar25 >> 0x1f);\n      def_file_add_directive(pe_def_file,pcVar11,iVar25);\n      free(pcVar11);\n    }\n  }\n  pdVar27 = pe_def_file->aligncomms;\njoined_r0x00066d64:\n  if (pdVar27 != (def_file_aligncomm *)0x0) {\n    do {\n      iVar10 = bfd_link_hash_lookup(info->hash,pdVar27->symbol_name,0,0,0);\n      if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x05')) {\n        puVar1 = &pdVar27->alignment;\n        if (**(uint **)(iVar10 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      pdVar27 = pdVar27->next;\n      if (pdVar27 == (def_file_aligncomm *)0x0) break;\n    } while( true );\n  }\n  bVar9 = *(byte *)info;\n  if ((bVar9 & 2) == 0) {\n    if (pe_def_file->num_exports != 0) {\n      if (pe_dll_export_everything != 0) goto LAB_00066fad;\n      iVar10 = pe_def_file->num_exports;\n      if (pe_dll_kill_ats != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }\n    pdVar24 = pe_def_file;\n    if ((pe_dll_export_everything != 0) && (pe_dll_exclude_all_symbols == 0)) {\nLAB_00066df0:\n      local_44 = info->input_bfds;\n      if (local_44 != (bfd *)0x0) {\n        pbVar12 = (bfd_section *)(PTR__bfd_std_section_001cefbc + 0xc0);\n        while (iVar10 = bfd_generic_link_read_symbols(local_44), iVar10 != 0) {\n          if (0 < (int)local_44->symcount) {\n            ppbVar2 = local_44->outsymbols + local_44->symcount;\n            local_48 = (def_file *)local_44->outsymbols;\n            do {\n              while ((pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))))) {\nLAB_00066f48:\n                local_48 = (def_file *)((int)local_48 + 4);\n                if ((def_file *)ppbVar2 == local_48) goto LAB_00067678;\n              }\n              bVar33 = link_info.version_info == (bfd_elf_version_tree *)0x0;\n              if (!bVar33) {\n                iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name);\n                bVar33 = iVar10 == 0;\n                if (!bVar33) goto LAB_00066f48;\n                pbVar13 = *(bfd_symbol **)local_48;\n              }\n              bVar32 = false;\n              pdVar24 = (def_file *)pbVar13->name;\n              iVar10 = 6;\n              pdVar16 = pdVar24;\n              pbVar30 = (byte *)0x1adaf4;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar32 = *(byte *)&pdVar16->name < *pbVar30;\n                bVar33 = *(byte *)&pdVar16->name == *pbVar30;\n                pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1);\n                pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1;\n              } while (bVar33);\n              if ((!bVar32 && !bVar33) == bVar32) goto LAB_00066f48;\n              sVar14 = strlen((char *)pdVar24);\n              pcVar11 = (char *)xmalloc(sVar14 + 7);\n              sprintf(pcVar11,"%s%s","__imp_",pdVar24);\n              iVar10 = bfd_link_hash_lookup(info->hash,pcVar11,0,0,0);\n              free(pcVar11);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (pe_details->underscored != 0) {\n                pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))\n                ;\n              }\n              iVar10 = auto_export(local_44,(def_file *)&pe_def_file->num_exports,\n                                   (char *)&pe_def_file->exports,pdVar24);\n              if (iVar10 == 0) goto LAB_00066f48;\n              is_dup = 0;\n              pdVar19 = def_file_add_export(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,\n                                            &is_dup);\n              if (is_dup != 0) goto LAB_00066f48;\n              ppbVar3 = (bfd_symbol **)((int)local_48 + 4);\n              pdVar19->flag_data = ((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1) & 1;\n              local_48 = (def_file *)ppbVar3;\n            } while (ppbVar2 != ppbVar3);\n          }\nLAB_00067678:\n          local_44 = (local_44->link).next;\n          if (local_44 == (bfd *)0x0) goto LAB_00066fbb;\n        }\n        pcVar11 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        einfo(pcVar11,local_44);\n        iVar10 = pe_def_file->num_exports;\n        pdVar24 = pe_def_file;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar10 = pe_def_file->num_exports;\n      pdVar24 = pe_def_file;\n      if (iVar10 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }\nLAB_00067375:\n    if ((bVar9 & 1) == 0) {\n      return;\n    }\n  }\n  else {\n    if ((pe_dll_export_everything != 0) || (iVar10 = pe_def_file->num_exports, iVar10 == 0)) {\nLAB_00066fad:\n      if (pe_dll_exclude_all_symbols == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (pe_dll_kill_ats == 0) {\nLAB_000671fd:\n      sVar14 = pe_def_file->num_exports;\n      local_48 = pe_def_file;\n      if (pe_dll_stdcall_aliases == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar33 = false;\n      bVar32 = sVar14 == 0;\n      if (0 < (int)sVar14) {\n        local_40 = (char *)0x0;\n        local_44 = (bfd *)0x0;\n        do {\n          pbVar30 = *(byte **)((int)&local_48->exports->name + (int)local_40);\n          iVar10 = 6;\n          pbVar28 = pbVar30;\n          pbVar31 = (byte *)0x1adaf4;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar33 = *pbVar28 < *pbVar31;\n            bVar32 = *pbVar28 == *pbVar31;\n            pbVar28 = pbVar28 + (uint)bVar36 * -2 + 1;\n            pbVar31 = pbVar31 + (uint)bVar36 * -2 + 1;\n          } while (bVar32);\n          if (((!bVar33 && !bVar32) != bVar33) &&\n             (pcVar11 = strchr((char *)pbVar30,0x40), pcVar11 != (char *)0x0)) {\n            is_dup = 1;\n            pdVar16 = (def_file *)xstrdup(pbVar30 + (*pbVar30 == 0x40));\n            pcVar11 = strchr((char *)pdVar16,0x40);\n            pdVar24 = pe_def_file;\n            *pcVar11 = '\0';\n            iVar10 = auto_export((bfd *)0x0,(def_file *)&pdVar24->num_exports,\n                                 (char *)&pdVar24->exports,pdVar16);\n            if (iVar10 != 0) {\n              def_file_add_export(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup);\n            }\n            local_48 = pe_def_file;\n            if (is_dup != 0) {\n              free(pdVar16);\n              local_48 = pe_def_file;\n            }\n          }\n          local_44 = (bfd *)((int)local_44 + 1);\n          sVar14 = local_48->num_exports;\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar33 = local_44 < sVar14;\n          bVar32 = local_44 == (bfd *)sVar14;\n        } while ((int)local_44 < (int)sVar14);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar10 = 0;\n      iVar25 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar33 = false;\n      iVar25 = 0;\n      local_48 = pe_def_file;\n      if (iVar10 < 1) goto LAB_000671fd;\n      do {\n        pcVar11 = local_48->exports[iVar25].name;\n        cVar29 = *pcVar11;\n        if ((cVar29 != '?') && (pcVar15 = strchr(pcVar11,0x40), pcVar15 != (char *)0x0)) {\n          pcVar11 = (char *)xstrdup(pcVar11 + (cVar29 == '@'));\n          pcVar15 = strrchr(pcVar11,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pcVar15 = pe_def_file->exports[iVar25].name;\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            einfo(pcVar20,pcVar15);\n          }\n          else {\n            *pcVar15 = '\0';\n          }\n          local_48 = pe_def_file;\n          bVar33 = true;\n          pe_def_file->exports[iVar25].name = pcVar11;\n        }\n        sVar14 = local_48->num_exports;\n        iVar25 = iVar25 + 1;\n      } while (iVar25 < (int)sVar14);\n      if (bVar33) {\n        qsort(local_48->exports,sVar14,0x1c,pe_export_sort);\n        local_48 = pe_def_file;\n        sVar14 = pe_def_file->num_exports;\n      }\n      if (pe_dll_stdcall_aliases != 0) goto LAB_0006709d;\nLAB_00067212:\n      pdVar24 = local_48;\n      pdVar19 = local_48->exports;\n      if ((int)sVar14 < 1) goto LAB_00067c38;\n      local_48 = (def_file *)0x0;\n      iVar25 = 0;\n      pdVar26 = pdVar19;\n      do {\n        if (local_48 == (def_file *)0x0) {\nLAB_00067327:\n          if ((def_file *)iVar25 != local_48) {\n            pdVar17 = pdVar19 + iVar25;\n            pdVar17->name = pdVar26->name;\n            pdVar17->internal_name = pdVar26->internal_name;\n            pdVar17->its_name = pdVar26->its_name;\n            pdVar17->ordinal = pdVar26->ordinal;\n            pdVar17->hint = pdVar26->hint;\n            cVar29 = pdVar26->flag_constant;\n            cVar5 = pdVar26->flag_noname;\n            cVar6 = pdVar26->flag_data;\n            pdVar17->flag_private = pdVar26->flag_private;\n            pdVar17->flag_constant = cVar29;\n            pdVar17->flag_noname = cVar5;\n            pdVar17->flag_data = cVar6;\n            uVar7 = *(undefined3 *)&pdVar26->field_0x19;\n            pdVar17->flag_forward = pdVar26->flag_forward;\n            *(undefined3 *)&pdVar17->field_0x19 = uVar7;\n          }\n          iVar25 = iVar25 + 1;\n        }\n        else {\n          local_40 = pdVar26->name;\n          iVar10 = strcmp(local_40,pdVar26[-1].name);\n          if (iVar10 != 0) goto LAB_00067327;\n          pdVar17 = pdVar19 + iVar25 + -1;\n          iVar10 = pdVar17->ordinal;\n          if (((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)) || (iVar10 == iVar22)) {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              einfo(pcVar15,pcVar11);\n              local_40 = pdVar26->name;\n            }\nLAB_00067748:\n            iVar22 = pdVar26->ordinal;\n            if (iVar22 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            pdVar17->ordinal = iVar22;\n          }\n          pdVar17->flag_private = pdVar17->flag_private | pdVar26->flag_private;\n          pdVar17->flag_constant = pdVar17->flag_constant | pdVar26->flag_constant;\n          pdVar17->flag_noname = pdVar17->flag_noname | pdVar26->flag_noname;\n          pdVar17->flag_data = pdVar17->flag_data | pdVar26->flag_data;\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if (pdVar26->internal_name != (char *)0x0) {\n            free(pdVar26->internal_name);\n          }\n          pdVar24 = pe_def_file;\n          if (pdVar26->its_name != (char *)0x0) {\n            free(pdVar26->its_name);\n            pdVar24 = pe_def_file;\n          }\n        }\n        local_48 = (def_file *)((int)local_48 + 1);\n        pdVar26 = pdVar26 + 1;\n      } while ((int)local_48 < pdVar24->num_exports);\n      iVar10 = iVar25 * 8;\n      local_48 = pdVar24;\n    }\n    local_48->num_exports = iVar25;\n    exported_symbol_offsets = (bfd_vma *)xmalloc(iVar10);\n    exported_symbol_sections = (bfd_section **)xmalloc(pe_def_file->num_exports << 2);\n    pdVar24 = pe_def_file;\n    memset(exported_symbol_sections,0,pe_def_file->num_exports * 4);\n    iVar10 = pdVar24->num_exports;\n    max_ordinal = 0;\n    min_ordinal = 0x10000;\n    count_exported = 0;\n    count_exported_byname = 0;\n    count_with_ordinals = 0;\n    if (0 < iVar10) {\n      local_48 = (def_file *)0x0;\n      do {\n        pcVar11 = pdVar24->exports[(int)local_48].internal_name;\n        lang_add_gc_name(pcVar11);\n        sVar14 = strlen(pcVar11);\n        pcVar15 = (char *)xmalloc(sVar14 + 2);\n        if ((pe_details->underscored == 0) || (*pcVar11 == '@')) {\n          strcpy(pcVar15,pcVar11);\n        }\n        else {\n          *pcVar15 = '_';\n          strcpy(pcVar15 + 1,pcVar11);\n          pcVar20 = (char *)xstrdup(pcVar15);\n          lang_add_gc_name(pcVar20);\n        }\n        iVar10 = bfd_link_hash_lookup(info->hash,pcVar15,0,0,1);\n        pdVar24 = pe_def_file;\n        if (iVar10 == 0) {\n          pcVar20 = strchr(pcVar11,0x2e);\n          if (pcVar20 != (char *)0x0) {\nLAB_00067968:\n            pdVar24 = pe_def_file;\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            pdVar19->flag_forward = '\x01';\n            goto LAB_00067863;\n          }\n          pcVar20 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          pcVar20 = (char *)dcgettext(0,pcVar20,5);\n          einfo(pcVar20,pcVar11);\n          pdVar24 = pe_def_file;\n        }\n        else {\n          cVar29 = *(char *)(iVar10 + 0xc);\n          if ((cVar29 - 3U & 0xfd) == 0) {\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            if (cVar29 == '\x03') {\n              exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14);\n            }\n            else {\n              exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;\n            }\nLAB_00067863:\n            iVar10 = pdVar19->ordinal;\n            if (iVar10 != -1) {\n              if (max_ordinal < iVar10) {\n                max_ordinal = iVar10;\n              }\n              if (iVar10 < min_ordinal) {\n                min_ordinal = iVar10;\n              }\n              count_with_ordinals = count_with_ordinals + 1;\n            }\n          }\n          else {\n            pcVar20 = strchr(pcVar11,0x2e);\n            if (pcVar20 != (char *)0x0) goto LAB_00067968;\n            if (cVar29 == '\x01') {\n              pcVar20 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       );\n            einfo(pcVar20,pcVar11,cVar29,3);\n            pdVar24 = pe_def_file;\n          }\n        }\n        free(pcVar15);\n        local_48 = (def_file *)((int)local_48 + 1);\n        iVar10 = pdVar24->num_exports;\n      } while ((int)local_48 < iVar10);\n    }\njoined_r0x00067b8d:\n    if (iVar10 == 0) {\nLAB_0006736e:\n      bVar9 = *(byte *)info;\n      goto LAB_00067375;\n    }\n  }\n  dll_name = pdVar24->name;\n  if (dll_name == (char *)0x0) {\n    dll_name = abfd->filename;\n    cVar29 = *dll_name;\n    if (cVar29 != '\0') {\n      bVar33 = false;\n      pcVar15 = dll_name;\n      pcVar11 = dll_name;\n      do {\n        bVar32 = cVar29 == '\\';\n        bVar34 = cVar29 == '/';\n        bVar35 = cVar29 == ':';\n        pcVar15 = pcVar15 + 1;\n        cVar29 = *pcVar15;\n        if ((bVar32 || bVar34) || bVar35) {\n          bVar33 = (bVar32 || bVar34) || bVar35;\n          pcVar11 = pcVar15;\n        }\n      } while (cVar29 != '\0');\n      if (bVar33) {\n        dll_name = pcVar11;\n      }\n    }\n  }\n  if ((count_with_ordinals == 0) || (max_ordinal <= count_exported)) {\n    min_ordinal = 1;\n    max_ordinal = count_exported;\n  }\n  else {\n    iVar10 = (max_ordinal - count_exported) + 1;\n    if (iVar10 < min_ordinal) {\n      min_ordinal = iVar10;\n    }\n  }\n  export_table_size = (max_ordinal - min_ordinal) + 1;\n  piVar18 = (int *)xmalloc(export_table_size * 4);\n  piVar23 = piVar18 + export_table_size;\n  exported_symbols = piVar18;\n  if (0 < export_table_size) {\n    do {\n      *piVar18 = -1;\n      piVar18 = piVar18 + 1;\n    } while (piVar23 != piVar18);\n  }\n  local_48 = pe_def_file;\n  local_3c = min_ordinal;\n  if (pe_def_file->num_exports < 1) {\n    local_44 = (bfd *)0x0;\n    iVar10 = min_ordinal;\n    goto LAB_00067580;\n  }\n  local_44 = (bfd *)0x0;\n  local_40 = (char *)0x0;\n  pdVar19 = pe_def_file->exports;\n  do {\n    pdVar26 = pdVar19 + (int)local_40;\n    if ((exported_symbol_sections[(int)local_40] == (bfd_section *)0x0) &&\n       (pdVar26->flag_forward == '\0')) {\n      pdVar19 = local_48->exports;\n      pdVar26 = pdVar19 + (int)local_40;\n    }\n    else {\n      iVar10 = pdVar26->ordinal;\n      if (iVar10 != -1) {\n        iVar25 = iVar10 - local_3c;\n        piVar23 = exported_symbols + iVar25;\n        if (*piVar23 != -1) {\n          pcVar11 = pdVar26->name;\n          pcVar15 = pdVar19[*piVar23].name;\n          pcVar20 = (char *)dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          einfo(pcVar20,iVar10,pcVar11,pcVar15);\n          local_3c = min_ordinal;\n          piVar23 = exported_symbols + iVar25;\n          local_48 = pe_def_file;\n        }\n        *piVar23 = (int)local_40;\n      }\n      pdVar19 = local_48->exports;\n      pdVar26 = pdVar19 + (int)local_40;\n      if (pdVar26->its_name == (char *)0x0) {\n        sVar14 = strlen(pdVar26->name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }\n      else {\n        sVar14 = strlen(pdVar26->its_name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }\n    }\n    if (pdVar26->flag_forward != '\0') {\n      sVar14 = strlen(pdVar26->internal_name);\n      local_44 = (bfd *)((int)local_44 + 1 + sVar14);\n    }\n    ppbVar8 = exported_symbol_sections;\n    piVar23 = exported_symbols;\n    local_40 = (char *)((int)local_40 + 1);\n  } while ((int)local_40 < local_48->num_exports);\n  iVar10 = local_3c;\n  if (local_48->num_exports < 1) goto LAB_00067580;\n  iVar25 = 0;\n  piVar18 = &pdVar19->ordinal;\n  do {\n    if (ppbVar8[iVar25] == (bfd_section *)0x0) {\n      if (*(char *)(piVar18 + 3) != '\0') {\n        iVar22 = *piVar18;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar22 = *piVar18;\njoined_r0x000676c3:\n      if (iVar22 == -1) {\n        piVar21 = piVar23 + (iVar10 - local_3c);\n        if (*piVar21 != -1) {\n          iVar10 = iVar10 + 1;\n          piVar21 = piVar23 + (iVar10 - local_3c);\n          while (*piVar21 != -1) {\n            iVar10 = iVar10 + 1;\n            piVar21 = piVar21 + 1;\n          }\n        }\n        *piVar21 = iVar25;\n        *piVar18 = iVar10;\n      }\n    }\n    iVar25 = iVar25 + 1;\n    piVar18 = piVar18 + 7;\n    if (local_48->num_exports <= iVar25) {\nLAB_00067580:\n      iVar25 = max_ordinal;\n      if ((0xffff < max_ordinal) || (0xffff < iVar10)) {\n        pcVar11 = (char *)dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar10 <= iVar25) {\n          iVar10 = iVar25;\n        }\n        einfo(pcVar11,iVar10);\n      }\n      iVar10 = count_exported_byname;\n      sVar14 = strlen(dll_name);\n      edata_sz = (int)local_44 + iVar10 * 6 + 0x29 + export_table_size * 4 + sVar14;\n      build_filler_bfd(1);\n      pe_output_file_set_long_section_names(filler_bfd);\n      return;\n    }\n  } while( true );\ncode_r0x00066da5:\n  pdVar27 = pdVar27->next;\n  **(uint **)(iVar10 + 0x14) = *puVar1;\n  goto joined_r0x00066d64;\n}\n\n" comment comment (function_definition "void pe_dll_build_sections(bfd *abfd,bfd_link_info *info)\n\n{\n  uint *puVar1;\n  bfd_symbol **ppbVar2;\n  bfd_symbol **ppbVar3;\n  bfd *pbVar4;\n  char cVar5;\n  char cVar6;\n  undefined3 uVar7;\n  bfd_section **ppbVar8;\n  byte bVar9;\n  int iVar10;\n  char *pcVar11;\n  bfd_section *pbVar12;\n  bfd_symbol *pbVar13;\n  size_t sVar14;\n  char *pcVar15;\n  def_file *pdVar16;\n  def_file_export *pdVar17;\n  int *piVar18;\n  def_file_export *pdVar19;\n  char *pcVar20;\n  int *piVar21;\n  int iVar22;\n  int *piVar23;\n  def_file *pdVar24;\n  int iVar25;\n  def_file_export *pdVar26;\n  def_file_aligncomm *pdVar27;\n  byte *pbVar28;\n  char cVar29;\n  byte *pbVar30;\n  byte *pbVar31;\n  bool bVar32;\n  bool bVar33;\n  bool bVar34;\n  bool bVar35;\n  byte bVar36;\n  def_file *local_48;\n  bfd *local_44;\n  char *local_40;\n  int local_3c;\n  int is_dup;\n  undefined4 uStack_14;\n  \n  bVar36 = 0;\n  uStack_14 = 0x66ca9;\n  pe_dll_id_target(abfd->xvec->name);\n  pe_output_file_set_long_section_names(abfd);\n  if (pe_def_file == (def_file *)0x0) {\n    pe_def_file = def_file_empty();\n  }\n  for (pbVar4 = info->input_bfds; pbVar4 != (bfd *)0x0; pbVar4 = (pbVar4->link).next) {\n    iVar10 = bfd_get_section_by_name(pbVar4,".drectve");\n    if (iVar10 != 0) {\n      iVar25 = *(int *)(iVar10 + 0x2c);\n      pcVar11 = (char *)xmalloc(iVar25);\n      bfd_get_section_contents(pbVar4,iVar10,pcVar11,0,0,iVar25,iVar25 >> 0x1f);\n      def_file_add_directive(pe_def_file,pcVar11,iVar25);\n      free(pcVar11);\n    }\n  }\n  pdVar27 = pe_def_file->aligncomms;\njoined_r0x00066d64:\n  if (pdVar27 != (def_file_aligncomm *)0x0) {\n    do {\n      iVar10 = bfd_link_hash_lookup(info->hash,pdVar27->symbol_name,0,0,0);\n      if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x05')) {\n        puVar1 = &pdVar27->alignment;\n        if (**(uint **)(iVar10 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      pdVar27 = pdVar27->next;\n      if (pdVar27 == (def_file_aligncomm *)0x0) break;\n    } while( true );\n  }\n  bVar9 = *(byte *)info;\n  if ((bVar9 & 2) == 0) {\n    if (pe_def_file->num_exports != 0) {\n      if (pe_dll_export_everything != 0) goto LAB_00066fad;\n      iVar10 = pe_def_file->num_exports;\n      if (pe_dll_kill_ats != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }\n    pdVar24 = pe_def_file;\n    if ((pe_dll_export_everything != 0) && (pe_dll_exclude_all_symbols == 0)) {\nLAB_00066df0:\n      local_44 = info->input_bfds;\n      if (local_44 != (bfd *)0x0) {\n        pbVar12 = (bfd_section *)(PTR__bfd_std_section_001cefbc + 0xc0);\n        while (iVar10 = bfd_generic_link_read_symbols(local_44), iVar10 != 0) {\n          if (0 < (int)local_44->symcount) {\n            ppbVar2 = local_44->outsymbols + local_44->symcount;\n            local_48 = (def_file *)local_44->outsymbols;\n            do {\n              while ((pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))))) {\nLAB_00066f48:\n                local_48 = (def_file *)((int)local_48 + 4);\n                if ((def_file *)ppbVar2 == local_48) goto LAB_00067678;\n              }\n              bVar33 = link_info.version_info == (bfd_elf_version_tree *)0x0;\n              if (!bVar33) {\n                iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name);\n                bVar33 = iVar10 == 0;\n                if (!bVar33) goto LAB_00066f48;\n                pbVar13 = *(bfd_symbol **)local_48;\n              }\n              bVar32 = false;\n              pdVar24 = (def_file *)pbVar13->name;\n              iVar10 = 6;\n              pdVar16 = pdVar24;\n              pbVar30 = (byte *)0x1adaf4;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar32 = *(byte *)&pdVar16->name < *pbVar30;\n                bVar33 = *(byte *)&pdVar16->name == *pbVar30;\n                pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1);\n                pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1;\n              } while (bVar33);\n              if ((!bVar32 && !bVar33) == bVar32) goto LAB_00066f48;\n              sVar14 = strlen((char *)pdVar24);\n              pcVar11 = (char *)xmalloc(sVar14 + 7);\n              sprintf(pcVar11,"%s%s","__imp_",pdVar24);\n              iVar10 = bfd_link_hash_lookup(info->hash,pcVar11,0,0,0);\n              free(pcVar11);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (pe_details->underscored != 0) {\n                pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))\n                ;\n              }\n              iVar10 = auto_export(local_44,(def_file *)&pe_def_file->num_exports,\n                                   (char *)&pe_def_file->exports,pdVar24);\n              if (iVar10 == 0) goto LAB_00066f48;\n              is_dup = 0;\n              pdVar19 = def_file_add_export(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,\n                                            &is_dup);\n              if (is_dup != 0) goto LAB_00066f48;\n              ppbVar3 = (bfd_symbol **)((int)local_48 + 4);\n              pdVar19->flag_data = ((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1) & 1;\n              local_48 = (def_file *)ppbVar3;\n            } while (ppbVar2 != ppbVar3);\n          }\nLAB_00067678:\n          local_44 = (local_44->link).next;\n          if (local_44 == (bfd *)0x0) goto LAB_00066fbb;\n        }\n        pcVar11 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        einfo(pcVar11,local_44);\n        iVar10 = pe_def_file->num_exports;\n        pdVar24 = pe_def_file;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar10 = pe_def_file->num_exports;\n      pdVar24 = pe_def_file;\n      if (iVar10 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }\nLAB_00067375:\n    if ((bVar9 & 1) == 0) {\n      return;\n    }\n  }\n  else {\n    if ((pe_dll_export_everything != 0) || (iVar10 = pe_def_file->num_exports, iVar10 == 0)) {\nLAB_00066fad:\n      if (pe_dll_exclude_all_symbols == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (pe_dll_kill_ats == 0) {\nLAB_000671fd:\n      sVar14 = pe_def_file->num_exports;\n      local_48 = pe_def_file;\n      if (pe_dll_stdcall_aliases == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar33 = false;\n      bVar32 = sVar14 == 0;\n      if (0 < (int)sVar14) {\n        local_40 = (char *)0x0;\n        local_44 = (bfd *)0x0;\n        do {\n          pbVar30 = *(byte **)((int)&local_48->exports->name + (int)local_40);\n          iVar10 = 6;\n          pbVar28 = pbVar30;\n          pbVar31 = (byte *)0x1adaf4;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar33 = *pbVar28 < *pbVar31;\n            bVar32 = *pbVar28 == *pbVar31;\n            pbVar28 = pbVar28 + (uint)bVar36 * -2 + 1;\n            pbVar31 = pbVar31 + (uint)bVar36 * -2 + 1;\n          } while (bVar32);\n          if (((!bVar33 && !bVar32) != bVar33) &&\n             (pcVar11 = strchr((char *)pbVar30,0x40), pcVar11 != (char *)0x0)) {\n            is_dup = 1;\n            pdVar16 = (def_file *)xstrdup(pbVar30 + (*pbVar30 == 0x40));\n            pcVar11 = strchr((char *)pdVar16,0x40);\n            pdVar24 = pe_def_file;\n            *pcVar11 = '\0';\n            iVar10 = auto_export((bfd *)0x0,(def_file *)&pdVar24->num_exports,\n                                 (char *)&pdVar24->exports,pdVar16);\n            if (iVar10 != 0) {\n              def_file_add_export(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup);\n            }\n            local_48 = pe_def_file;\n            if (is_dup != 0) {\n              free(pdVar16);\n              local_48 = pe_def_file;\n            }\n          }\n          local_44 = (bfd *)((int)local_44 + 1);\n          sVar14 = local_48->num_exports;\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar33 = local_44 < sVar14;\n          bVar32 = local_44 == (bfd *)sVar14;\n        } while ((int)local_44 < (int)sVar14);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar10 = 0;\n      iVar25 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar33 = false;\n      iVar25 = 0;\n      local_48 = pe_def_file;\n      if (iVar10 < 1) goto LAB_000671fd;\n      do {\n        pcVar11 = local_48->exports[iVar25].name;\n        cVar29 = *pcVar11;\n        if ((cVar29 != '?') && (pcVar15 = strchr(pcVar11,0x40), pcVar15 != (char *)0x0)) {\n          pcVar11 = (char *)xstrdup(pcVar11 + (cVar29 == '@'));\n          pcVar15 = strrchr(pcVar11,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pcVar15 = pe_def_file->exports[iVar25].name;\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            einfo(pcVar20,pcVar15);\n          }\n          else {\n            *pcVar15 = '\0';\n          }\n          local_48 = pe_def_file;\n          bVar33 = true;\n          pe_def_file->exports[iVar25].name = pcVar11;\n        }\n        sVar14 = local_48->num_exports;\n        iVar25 = iVar25 + 1;\n      } while (iVar25 < (int)sVar14);\n      if (bVar33) {\n        qsort(local_48->exports,sVar14,0x1c,pe_export_sort);\n        local_48 = pe_def_file;\n        sVar14 = pe_def_file->num_exports;\n      }\n      if (pe_dll_stdcall_aliases != 0) goto LAB_0006709d;\nLAB_00067212:\n      pdVar24 = local_48;\n      pdVar19 = local_48->exports;\n      if ((int)sVar14 < 1) goto LAB_00067c38;\n      local_48 = (def_file *)0x0;\n      iVar25 = 0;\n      pdVar26 = pdVar19;\n      do {\n        if (local_48 == (def_file *)0x0) {\nLAB_00067327:\n          if ((def_file *)iVar25 != local_48) {\n            pdVar17 = pdVar19 + iVar25;\n            pdVar17->name = pdVar26->name;\n            pdVar17->internal_name = pdVar26->internal_name;\n            pdVar17->its_name = pdVar26->its_name;\n            pdVar17->ordinal = pdVar26->ordinal;\n            pdVar17->hint = pdVar26->hint;\n            cVar29 = pdVar26->flag_constant;\n            cVar5 = pdVar26->flag_noname;\n            cVar6 = pdVar26->flag_data;\n            pdVar17->flag_private = pdVar26->flag_private;\n            pdVar17->flag_constant = cVar29;\n            pdVar17->flag_noname = cVar5;\n            pdVar17->flag_data = cVar6;\n            uVar7 = *(undefined3 *)&pdVar26->field_0x19;\n            pdVar17->flag_forward = pdVar26->flag_forward;\n            *(undefined3 *)&pdVar17->field_0x19 = uVar7;\n          }\n          iVar25 = iVar25 + 1;\n        }\n        else {\n          local_40 = pdVar26->name;\n          iVar10 = strcmp(local_40,pdVar26[-1].name);\n          if (iVar10 != 0) goto LAB_00067327;\n          pdVar17 = pdVar19 + iVar25 + -1;\n          iVar10 = pdVar17->ordinal;\n          if (((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)) || (iVar10 == iVar22)) {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              einfo(pcVar15,pcVar11);\n              local_40 = pdVar26->name;\n            }\nLAB_00067748:\n            iVar22 = pdVar26->ordinal;\n            if (iVar22 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            pdVar17->ordinal = iVar22;\n          }\n          pdVar17->flag_private = pdVar17->flag_private | pdVar26->flag_private;\n          pdVar17->flag_constant = pdVar17->flag_constant | pdVar26->flag_constant;\n          pdVar17->flag_noname = pdVar17->flag_noname | pdVar26->flag_noname;\n          pdVar17->flag_data = pdVar17->flag_data | pdVar26->flag_data;\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if (pdVar26->internal_name != (char *)0x0) {\n            free(pdVar26->internal_name);\n          }\n          pdVar24 = pe_def_file;\n          if (pdVar26->its_name != (char *)0x0) {\n            free(pdVar26->its_name);\n            pdVar24 = pe_def_file;\n          }\n        }\n        local_48 = (def_file *)((int)local_48 + 1);\n        pdVar26 = pdVar26 + 1;\n      } while ((int)local_48 < pdVar24->num_exports);\n      iVar10 = iVar25 * 8;\n      local_48 = pdVar24;\n    }\n    local_48->num_exports = iVar25;\n    exported_symbol_offsets = (bfd_vma *)xmalloc(iVar10);\n    exported_symbol_sections = (bfd_section **)xmalloc(pe_def_file->num_exports << 2);\n    pdVar24 = pe_def_file;\n    memset(exported_symbol_sections,0,pe_def_file->num_exports * 4);\n    iVar10 = pdVar24->num_exports;\n    max_ordinal = 0;\n    min_ordinal = 0x10000;\n    count_exported = 0;\n    count_exported_byname = 0;\n    count_with_ordinals = 0;\n    if (0 < iVar10) {\n      local_48 = (def_file *)0x0;\n      do {\n        pcVar11 = pdVar24->exports[(int)local_48].internal_name;\n        lang_add_gc_name(pcVar11);\n        sVar14 = strlen(pcVar11);\n        pcVar15 = (char *)xmalloc(sVar14 + 2);\n        if ((pe_details->underscored == 0) || (*pcVar11 == '@')) {\n          strcpy(pcVar15,pcVar11);\n        }\n        else {\n          *pcVar15 = '_';\n          strcpy(pcVar15 + 1,pcVar11);\n          pcVar20 = (char *)xstrdup(pcVar15);\n          lang_add_gc_name(pcVar20);\n        }\n        iVar10 = bfd_link_hash_lookup(info->hash,pcVar15,0,0,1);\n        pdVar24 = pe_def_file;\n        if (iVar10 == 0) {\n          pcVar20 = strchr(pcVar11,0x2e);\n          if (pcVar20 != (char *)0x0) {\nLAB_00067968:\n            pdVar24 = pe_def_file;\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            pdVar19->flag_forward = '\x01';\n            goto LAB_00067863;\n          }\n          pcVar20 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          pcVar20 = (char *)dcgettext(0,pcVar20,5);\n          einfo(pcVar20,pcVar11);\n          pdVar24 = pe_def_file;\n        }\n        else {\n          cVar29 = *(char *)(iVar10 + 0xc);\n          if ((cVar29 - 3U & 0xfd) == 0) {\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            if (cVar29 == '\x03') {\n              exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14);\n            }\n            else {\n              exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;\n            }\nLAB_00067863:\n            iVar10 = pdVar19->ordinal;\n            if (iVar10 != -1) {\n              if (max_ordinal < iVar10) {\n                max_ordinal = iVar10;\n              }\n              if (iVar10 < min_ordinal) {\n                min_ordinal = iVar10;\n              }\n              count_with_ordinals = count_with_ordinals + 1;\n            }\n          }\n          else {\n            pcVar20 = strchr(pcVar11,0x2e);\n            if (pcVar20 != (char *)0x0) goto LAB_00067968;\n            if (cVar29 == '\x01') {\n              pcVar20 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       );\n            einfo(pcVar20,pcVar11,cVar29,3);\n            pdVar24 = pe_def_file;\n          }\n        }\n        free(pcVar15);\n        local_48 = (def_file *)((int)local_48 + 1);\n        iVar10 = pdVar24->num_exports;\n      } while ((int)local_48 < iVar10);\n    }\njoined_r0x00067b8d:\n    if (iVar10 == 0) {\nLAB_0006736e:\n      bVar9 = *(byte *)info;\n      goto LAB_00067375;\n    }\n  }\n  dll_name = pdVar24->name;\n  if (dll_name == (char *)0x0) {\n    dll_name = abfd->filename;\n    cVar29 = *dll_name;\n    if (cVar29 != '\0') {\n      bVar33 = false;\n      pcVar15 = dll_name;\n      pcVar11 = dll_name;\n      do {\n        bVar32 = cVar29 == '\\';\n        bVar34 = cVar29 == '/';\n        bVar35 = cVar29 == ':';\n        pcVar15 = pcVar15 + 1;\n        cVar29 = *pcVar15;\n        if ((bVar32 || bVar34) || bVar35) {\n          bVar33 = (bVar32 || bVar34) || bVar35;\n          pcVar11 = pcVar15;\n        }\n      } while (cVar29 != '\0');\n      if (bVar33) {\n        dll_name = pcVar11;\n      }\n    }\n  }\n  if ((count_with_ordinals == 0) || (max_ordinal <= count_exported)) {\n    min_ordinal = 1;\n    max_ordinal = count_exported;\n  }\n  else {\n    iVar10 = (max_ordinal - count_exported) + 1;\n    if (iVar10 < min_ordinal) {\n      min_ordinal = iVar10;\n    }\n  }\n  export_table_size = (max_ordinal - min_ordinal) + 1;\n  piVar18 = (int *)xmalloc(export_table_size * 4);\n  piVar23 = piVar18 + export_table_size;\n  exported_symbols = piVar18;\n  if (0 < export_table_size) {\n    do {\n      *piVar18 = -1;\n      piVar18 = piVar18 + 1;\n    } while (piVar23 != piVar18);\n  }\n  local_48 = pe_def_file;\n  local_3c = min_ordinal;\n  if (pe_def_file->num_exports < 1) {\n    local_44 = (bfd *)0x0;\n    iVar10 = min_ordinal;\n    goto LAB_00067580;\n  }\n  local_44 = (bfd *)0x0;\n  local_40 = (char *)0x0;\n  pdVar19 = pe_def_file->exports;\n  do {\n    pdVar26 = pdVar19 + (int)local_40;\n    if ((exported_symbol_sections[(int)local_40] == (bfd_section *)0x0) &&\n       (pdVar26->flag_forward == '\0')) {\n      pdVar19 = local_48->exports;\n      pdVar26 = pdVar19 + (int)local_40;\n    }\n    else {\n      iVar10 = pdVar26->ordinal;\n      if (iVar10 != -1) {\n        iVar25 = iVar10 - local_3c;\n        piVar23 = exported_symbols + iVar25;\n        if (*piVar23 != -1) {\n          pcVar11 = pdVar26->name;\n          pcVar15 = pdVar19[*piVar23].name;\n          pcVar20 = (char *)dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          einfo(pcVar20,iVar10,pcVar11,pcVar15);\n          local_3c = min_ordinal;\n          piVar23 = exported_symbols + iVar25;\n          local_48 = pe_def_file;\n        }\n        *piVar23 = (int)local_40;\n      }\n      pdVar19 = local_48->exports;\n      pdVar26 = pdVar19 + (int)local_40;\n      if (pdVar26->its_name == (char *)0x0) {\n        sVar14 = strlen(pdVar26->name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }\n      else {\n        sVar14 = strlen(pdVar26->its_name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }\n    }\n    if (pdVar26->flag_forward != '\0') {\n      sVar14 = strlen(pdVar26->internal_name);\n      local_44 = (bfd *)((int)local_44 + 1 + sVar14);\n    }\n    ppbVar8 = exported_symbol_sections;\n    piVar23 = exported_symbols;\n    local_40 = (char *)((int)local_40 + 1);\n  } while ((int)local_40 < local_48->num_exports);\n  iVar10 = local_3c;\n  if (local_48->num_exports < 1) goto LAB_00067580;\n  iVar25 = 0;\n  piVar18 = &pdVar19->ordinal;\n  do {\n    if (ppbVar8[iVar25] == (bfd_section *)0x0) {\n      if (*(char *)(piVar18 + 3) != '\0') {\n        iVar22 = *piVar18;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar22 = *piVar18;\njoined_r0x000676c3:\n      if (iVar22 == -1) {\n        piVar21 = piVar23 + (iVar10 - local_3c);\n        if (*piVar21 != -1) {\n          iVar10 = iVar10 + 1;\n          piVar21 = piVar23 + (iVar10 - local_3c);\n          while (*piVar21 != -1) {\n            iVar10 = iVar10 + 1;\n            piVar21 = piVar21 + 1;\n          }\n        }\n        *piVar21 = iVar25;\n        *piVar18 = iVar10;\n      }\n    }\n    iVar25 = iVar25 + 1;\n    piVar18 = piVar18 + 7;\n    if (local_48->num_exports <= iVar25) {\nLAB_00067580:\n      iVar25 = max_ordinal;\n      if ((0xffff < max_ordinal) || (0xffff < iVar10)) {\n        pcVar11 = (char *)dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar10 <= iVar25) {\n          iVar10 = iVar25;\n        }\n        einfo(pcVar11,iVar10);\n      }\n      iVar10 = count_exported_byname;\n      sVar14 = strlen(dll_name);\n      edata_sz = (int)local_44 + iVar10 * 6 + 0x29 + export_table_size * 4 + sVar14;\n      build_filler_bfd(1);\n      pe_output_file_set_long_section_names(filler_bfd);\n      return;\n    }\n  } while( true );\ncode_r0x00066da5:\n  pdVar27 = pdVar27->next;\n  **(uint **)(iVar10 + 0x14) = *puVar1;\n  goto joined_r0x00066d64;\n}" primitive_type (function_declarator "pe_dll_build_sections(bfd *abfd,bfd_link_info *info)" identifier (parameter_list "(bfd *abfd,bfd_link_info *info)" ( (parameter_declaration "bfd *abfd" type_identifier (pointer_declarator "*abfd" * identifier)) , (parameter_declaration "bfd_link_info *info" type_identifier (pointer_declarator "*info" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  bfd_symbol **ppbVar2;\n  bfd_symbol **ppbVar3;\n  bfd *pbVar4;\n  char cVar5;\n  char cVar6;\n  undefined3 uVar7;\n  bfd_section **ppbVar8;\n  byte bVar9;\n  int iVar10;\n  char *pcVar11;\n  bfd_section *pbVar12;\n  bfd_symbol *pbVar13;\n  size_t sVar14;\n  char *pcVar15;\n  def_file *pdVar16;\n  def_file_export *pdVar17;\n  int *piVar18;\n  def_file_export *pdVar19;\n  char *pcVar20;\n  int *piVar21;\n  int iVar22;\n  int *piVar23;\n  def_file *pdVar24;\n  int iVar25;\n  def_file_export *pdVar26;\n  def_file_aligncomm *pdVar27;\n  byte *pbVar28;\n  char cVar29;\n  byte *pbVar30;\n  byte *pbVar31;\n  bool bVar32;\n  bool bVar33;\n  bool bVar34;\n  bool bVar35;\n  byte bVar36;\n  def_file *local_48;\n  bfd *local_44;\n  char *local_40;\n  int local_3c;\n  int is_dup;\n  undefined4 uStack_14;\n  \n  bVar36 = 0;\n  uStack_14 = 0x66ca9;\n  pe_dll_id_target(abfd->xvec->name);\n  pe_output_file_set_long_section_names(abfd);\n  if (pe_def_file == (def_file *)0x0) {\n    pe_def_file = def_file_empty();\n  }\n  for (pbVar4 = info->input_bfds; pbVar4 != (bfd *)0x0; pbVar4 = (pbVar4->link).next) {\n    iVar10 = bfd_get_section_by_name(pbVar4,".drectve");\n    if (iVar10 != 0) {\n      iVar25 = *(int *)(iVar10 + 0x2c);\n      pcVar11 = (char *)xmalloc(iVar25);\n      bfd_get_section_contents(pbVar4,iVar10,pcVar11,0,0,iVar25,iVar25 >> 0x1f);\n      def_file_add_directive(pe_def_file,pcVar11,iVar25);\n      free(pcVar11);\n    }\n  }\n  pdVar27 = pe_def_file->aligncomms;\njoined_r0x00066d64:\n  if (pdVar27 != (def_file_aligncomm *)0x0) {\n    do {\n      iVar10 = bfd_link_hash_lookup(info->hash,pdVar27->symbol_name,0,0,0);\n      if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x05')) {\n        puVar1 = &pdVar27->alignment;\n        if (**(uint **)(iVar10 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      pdVar27 = pdVar27->next;\n      if (pdVar27 == (def_file_aligncomm *)0x0) break;\n    } while( true );\n  }\n  bVar9 = *(byte *)info;\n  if ((bVar9 & 2) == 0) {\n    if (pe_def_file->num_exports != 0) {\n      if (pe_dll_export_everything != 0) goto LAB_00066fad;\n      iVar10 = pe_def_file->num_exports;\n      if (pe_dll_kill_ats != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }\n    pdVar24 = pe_def_file;\n    if ((pe_dll_export_everything != 0) && (pe_dll_exclude_all_symbols == 0)) {\nLAB_00066df0:\n      local_44 = info->input_bfds;\n      if (local_44 != (bfd *)0x0) {\n        pbVar12 = (bfd_section *)(PTR__bfd_std_section_001cefbc + 0xc0);\n        while (iVar10 = bfd_generic_link_read_symbols(local_44), iVar10 != 0) {\n          if (0 < (int)local_44->symcount) {\n            ppbVar2 = local_44->outsymbols + local_44->symcount;\n            local_48 = (def_file *)local_44->outsymbols;\n            do {\n              while ((pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))))) {\nLAB_00066f48:\n                local_48 = (def_file *)((int)local_48 + 4);\n                if ((def_file *)ppbVar2 == local_48) goto LAB_00067678;\n              }\n              bVar33 = link_info.version_info == (bfd_elf_version_tree *)0x0;\n              if (!bVar33) {\n                iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name);\n                bVar33 = iVar10 == 0;\n                if (!bVar33) goto LAB_00066f48;\n                pbVar13 = *(bfd_symbol **)local_48;\n              }\n              bVar32 = false;\n              pdVar24 = (def_file *)pbVar13->name;\n              iVar10 = 6;\n              pdVar16 = pdVar24;\n              pbVar30 = (byte *)0x1adaf4;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar32 = *(byte *)&pdVar16->name < *pbVar30;\n                bVar33 = *(byte *)&pdVar16->name == *pbVar30;\n                pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1);\n                pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1;\n              } while (bVar33);\n              if ((!bVar32 && !bVar33) == bVar32) goto LAB_00066f48;\n              sVar14 = strlen((char *)pdVar24);\n              pcVar11 = (char *)xmalloc(sVar14 + 7);\n              sprintf(pcVar11,"%s%s","__imp_",pdVar24);\n              iVar10 = bfd_link_hash_lookup(info->hash,pcVar11,0,0,0);\n              free(pcVar11);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (pe_details->underscored != 0) {\n                pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))\n                ;\n              }\n              iVar10 = auto_export(local_44,(def_file *)&pe_def_file->num_exports,\n                                   (char *)&pe_def_file->exports,pdVar24);\n              if (iVar10 == 0) goto LAB_00066f48;\n              is_dup = 0;\n              pdVar19 = def_file_add_export(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,\n                                            &is_dup);\n              if (is_dup != 0) goto LAB_00066f48;\n              ppbVar3 = (bfd_symbol **)((int)local_48 + 4);\n              pdVar19->flag_data = ((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1) & 1;\n              local_48 = (def_file *)ppbVar3;\n            } while (ppbVar2 != ppbVar3);\n          }\nLAB_00067678:\n          local_44 = (local_44->link).next;\n          if (local_44 == (bfd *)0x0) goto LAB_00066fbb;\n        }\n        pcVar11 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        einfo(pcVar11,local_44);\n        iVar10 = pe_def_file->num_exports;\n        pdVar24 = pe_def_file;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar10 = pe_def_file->num_exports;\n      pdVar24 = pe_def_file;\n      if (iVar10 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }\nLAB_00067375:\n    if ((bVar9 & 1) == 0) {\n      return;\n    }\n  }\n  else {\n    if ((pe_dll_export_everything != 0) || (iVar10 = pe_def_file->num_exports, iVar10 == 0)) {\nLAB_00066fad:\n      if (pe_dll_exclude_all_symbols == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (pe_dll_kill_ats == 0) {\nLAB_000671fd:\n      sVar14 = pe_def_file->num_exports;\n      local_48 = pe_def_file;\n      if (pe_dll_stdcall_aliases == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar33 = false;\n      bVar32 = sVar14 == 0;\n      if (0 < (int)sVar14) {\n        local_40 = (char *)0x0;\n        local_44 = (bfd *)0x0;\n        do {\n          pbVar30 = *(byte **)((int)&local_48->exports->name + (int)local_40);\n          iVar10 = 6;\n          pbVar28 = pbVar30;\n          pbVar31 = (byte *)0x1adaf4;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar33 = *pbVar28 < *pbVar31;\n            bVar32 = *pbVar28 == *pbVar31;\n            pbVar28 = pbVar28 + (uint)bVar36 * -2 + 1;\n            pbVar31 = pbVar31 + (uint)bVar36 * -2 + 1;\n          } while (bVar32);\n          if (((!bVar33 && !bVar32) != bVar33) &&\n             (pcVar11 = strchr((char *)pbVar30,0x40), pcVar11 != (char *)0x0)) {\n            is_dup = 1;\n            pdVar16 = (def_file *)xstrdup(pbVar30 + (*pbVar30 == 0x40));\n            pcVar11 = strchr((char *)pdVar16,0x40);\n            pdVar24 = pe_def_file;\n            *pcVar11 = '\0';\n            iVar10 = auto_export((bfd *)0x0,(def_file *)&pdVar24->num_exports,\n                                 (char *)&pdVar24->exports,pdVar16);\n            if (iVar10 != 0) {\n              def_file_add_export(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup);\n            }\n            local_48 = pe_def_file;\n            if (is_dup != 0) {\n              free(pdVar16);\n              local_48 = pe_def_file;\n            }\n          }\n          local_44 = (bfd *)((int)local_44 + 1);\n          sVar14 = local_48->num_exports;\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar33 = local_44 < sVar14;\n          bVar32 = local_44 == (bfd *)sVar14;\n        } while ((int)local_44 < (int)sVar14);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar10 = 0;\n      iVar25 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar33 = false;\n      iVar25 = 0;\n      local_48 = pe_def_file;\n      if (iVar10 < 1) goto LAB_000671fd;\n      do {\n        pcVar11 = local_48->exports[iVar25].name;\n        cVar29 = *pcVar11;\n        if ((cVar29 != '?') && (pcVar15 = strchr(pcVar11,0x40), pcVar15 != (char *)0x0)) {\n          pcVar11 = (char *)xstrdup(pcVar11 + (cVar29 == '@'));\n          pcVar15 = strrchr(pcVar11,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pcVar15 = pe_def_file->exports[iVar25].name;\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            einfo(pcVar20,pcVar15);\n          }\n          else {\n            *pcVar15 = '\0';\n          }\n          local_48 = pe_def_file;\n          bVar33 = true;\n          pe_def_file->exports[iVar25].name = pcVar11;\n        }\n        sVar14 = local_48->num_exports;\n        iVar25 = iVar25 + 1;\n      } while (iVar25 < (int)sVar14);\n      if (bVar33) {\n        qsort(local_48->exports,sVar14,0x1c,pe_export_sort);\n        local_48 = pe_def_file;\n        sVar14 = pe_def_file->num_exports;\n      }\n      if (pe_dll_stdcall_aliases != 0) goto LAB_0006709d;\nLAB_00067212:\n      pdVar24 = local_48;\n      pdVar19 = local_48->exports;\n      if ((int)sVar14 < 1) goto LAB_00067c38;\n      local_48 = (def_file *)0x0;\n      iVar25 = 0;\n      pdVar26 = pdVar19;\n      do {\n        if (local_48 == (def_file *)0x0) {\nLAB_00067327:\n          if ((def_file *)iVar25 != local_48) {\n            pdVar17 = pdVar19 + iVar25;\n            pdVar17->name = pdVar26->name;\n            pdVar17->internal_name = pdVar26->internal_name;\n            pdVar17->its_name = pdVar26->its_name;\n            pdVar17->ordinal = pdVar26->ordinal;\n            pdVar17->hint = pdVar26->hint;\n            cVar29 = pdVar26->flag_constant;\n            cVar5 = pdVar26->flag_noname;\n            cVar6 = pdVar26->flag_data;\n            pdVar17->flag_private = pdVar26->flag_private;\n            pdVar17->flag_constant = cVar29;\n            pdVar17->flag_noname = cVar5;\n            pdVar17->flag_data = cVar6;\n            uVar7 = *(undefined3 *)&pdVar26->field_0x19;\n            pdVar17->flag_forward = pdVar26->flag_forward;\n            *(undefined3 *)&pdVar17->field_0x19 = uVar7;\n          }\n          iVar25 = iVar25 + 1;\n        }\n        else {\n          local_40 = pdVar26->name;\n          iVar10 = strcmp(local_40,pdVar26[-1].name);\n          if (iVar10 != 0) goto LAB_00067327;\n          pdVar17 = pdVar19 + iVar25 + -1;\n          iVar10 = pdVar17->ordinal;\n          if (((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)) || (iVar10 == iVar22)) {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              einfo(pcVar15,pcVar11);\n              local_40 = pdVar26->name;\n            }\nLAB_00067748:\n            iVar22 = pdVar26->ordinal;\n            if (iVar22 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            pdVar17->ordinal = iVar22;\n          }\n          pdVar17->flag_private = pdVar17->flag_private | pdVar26->flag_private;\n          pdVar17->flag_constant = pdVar17->flag_constant | pdVar26->flag_constant;\n          pdVar17->flag_noname = pdVar17->flag_noname | pdVar26->flag_noname;\n          pdVar17->flag_data = pdVar17->flag_data | pdVar26->flag_data;\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if (pdVar26->internal_name != (char *)0x0) {\n            free(pdVar26->internal_name);\n          }\n          pdVar24 = pe_def_file;\n          if (pdVar26->its_name != (char *)0x0) {\n            free(pdVar26->its_name);\n            pdVar24 = pe_def_file;\n          }\n        }\n        local_48 = (def_file *)((int)local_48 + 1);\n        pdVar26 = pdVar26 + 1;\n      } while ((int)local_48 < pdVar24->num_exports);\n      iVar10 = iVar25 * 8;\n      local_48 = pdVar24;\n    }\n    local_48->num_exports = iVar25;\n    exported_symbol_offsets = (bfd_vma *)xmalloc(iVar10);\n    exported_symbol_sections = (bfd_section **)xmalloc(pe_def_file->num_exports << 2);\n    pdVar24 = pe_def_file;\n    memset(exported_symbol_sections,0,pe_def_file->num_exports * 4);\n    iVar10 = pdVar24->num_exports;\n    max_ordinal = 0;\n    min_ordinal = 0x10000;\n    count_exported = 0;\n    count_exported_byname = 0;\n    count_with_ordinals = 0;\n    if (0 < iVar10) {\n      local_48 = (def_file *)0x0;\n      do {\n        pcVar11 = pdVar24->exports[(int)local_48].internal_name;\n        lang_add_gc_name(pcVar11);\n        sVar14 = strlen(pcVar11);\n        pcVar15 = (char *)xmalloc(sVar14 + 2);\n        if ((pe_details->underscored == 0) || (*pcVar11 == '@')) {\n          strcpy(pcVar15,pcVar11);\n        }\n        else {\n          *pcVar15 = '_';\n          strcpy(pcVar15 + 1,pcVar11);\n          pcVar20 = (char *)xstrdup(pcVar15);\n          lang_add_gc_name(pcVar20);\n        }\n        iVar10 = bfd_link_hash_lookup(info->hash,pcVar15,0,0,1);\n        pdVar24 = pe_def_file;\n        if (iVar10 == 0) {\n          pcVar20 = strchr(pcVar11,0x2e);\n          if (pcVar20 != (char *)0x0) {\nLAB_00067968:\n            pdVar24 = pe_def_file;\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            pdVar19->flag_forward = '\x01';\n            goto LAB_00067863;\n          }\n          pcVar20 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          pcVar20 = (char *)dcgettext(0,pcVar20,5);\n          einfo(pcVar20,pcVar11);\n          pdVar24 = pe_def_file;\n        }\n        else {\n          cVar29 = *(char *)(iVar10 + 0xc);\n          if ((cVar29 - 3U & 0xfd) == 0) {\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            if (cVar29 == '\x03') {\n              exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14);\n            }\n            else {\n              exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;\n            }\nLAB_00067863:\n            iVar10 = pdVar19->ordinal;\n            if (iVar10 != -1) {\n              if (max_ordinal < iVar10) {\n                max_ordinal = iVar10;\n              }\n              if (iVar10 < min_ordinal) {\n                min_ordinal = iVar10;\n              }\n              count_with_ordinals = count_with_ordinals + 1;\n            }\n          }\n          else {\n            pcVar20 = strchr(pcVar11,0x2e);\n            if (pcVar20 != (char *)0x0) goto LAB_00067968;\n            if (cVar29 == '\x01') {\n              pcVar20 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       );\n            einfo(pcVar20,pcVar11,cVar29,3);\n            pdVar24 = pe_def_file;\n          }\n        }\n        free(pcVar15);\n        local_48 = (def_file *)((int)local_48 + 1);\n        iVar10 = pdVar24->num_exports;\n      } while ((int)local_48 < iVar10);\n    }\njoined_r0x00067b8d:\n    if (iVar10 == 0) {\nLAB_0006736e:\n      bVar9 = *(byte *)info;\n      goto LAB_00067375;\n    }\n  }\n  dll_name = pdVar24->name;\n  if (dll_name == (char *)0x0) {\n    dll_name = abfd->filename;\n    cVar29 = *dll_name;\n    if (cVar29 != '\0') {\n      bVar33 = false;\n      pcVar15 = dll_name;\n      pcVar11 = dll_name;\n      do {\n        bVar32 = cVar29 == '\\';\n        bVar34 = cVar29 == '/';\n        bVar35 = cVar29 == ':';\n        pcVar15 = pcVar15 + 1;\n        cVar29 = *pcVar15;\n        if ((bVar32 || bVar34) || bVar35) {\n          bVar33 = (bVar32 || bVar34) || bVar35;\n          pcVar11 = pcVar15;\n        }\n      } while (cVar29 != '\0');\n      if (bVar33) {\n        dll_name = pcVar11;\n      }\n    }\n  }\n  if ((count_with_ordinals == 0) || (max_ordinal <= count_exported)) {\n    min_ordinal = 1;\n    max_ordinal = count_exported;\n  }\n  else {\n    iVar10 = (max_ordinal - count_exported) + 1;\n    if (iVar10 < min_ordinal) {\n      min_ordinal = iVar10;\n    }\n  }\n  export_table_size = (max_ordinal - min_ordinal) + 1;\n  piVar18 = (int *)xmalloc(export_table_size * 4);\n  piVar23 = piVar18 + export_table_size;\n  exported_symbols = piVar18;\n  if (0 < export_table_size) {\n    do {\n      *piVar18 = -1;\n      piVar18 = piVar18 + 1;\n    } while (piVar23 != piVar18);\n  }\n  local_48 = pe_def_file;\n  local_3c = min_ordinal;\n  if (pe_def_file->num_exports < 1) {\n    local_44 = (bfd *)0x0;\n    iVar10 = min_ordinal;\n    goto LAB_00067580;\n  }\n  local_44 = (bfd *)0x0;\n  local_40 = (char *)0x0;\n  pdVar19 = pe_def_file->exports;\n  do {\n    pdVar26 = pdVar19 + (int)local_40;\n    if ((exported_symbol_sections[(int)local_40] == (bfd_section *)0x0) &&\n       (pdVar26->flag_forward == '\0')) {\n      pdVar19 = local_48->exports;\n      pdVar26 = pdVar19 + (int)local_40;\n    }\n    else {\n      iVar10 = pdVar26->ordinal;\n      if (iVar10 != -1) {\n        iVar25 = iVar10 - local_3c;\n        piVar23 = exported_symbols + iVar25;\n        if (*piVar23 != -1) {\n          pcVar11 = pdVar26->name;\n          pcVar15 = pdVar19[*piVar23].name;\n          pcVar20 = (char *)dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          einfo(pcVar20,iVar10,pcVar11,pcVar15);\n          local_3c = min_ordinal;\n          piVar23 = exported_symbols + iVar25;\n          local_48 = pe_def_file;\n        }\n        *piVar23 = (int)local_40;\n      }\n      pdVar19 = local_48->exports;\n      pdVar26 = pdVar19 + (int)local_40;\n      if (pdVar26->its_name == (char *)0x0) {\n        sVar14 = strlen(pdVar26->name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }\n      else {\n        sVar14 = strlen(pdVar26->its_name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }\n    }\n    if (pdVar26->flag_forward != '\0') {\n      sVar14 = strlen(pdVar26->internal_name);\n      local_44 = (bfd *)((int)local_44 + 1 + sVar14);\n    }\n    ppbVar8 = exported_symbol_sections;\n    piVar23 = exported_symbols;\n    local_40 = (char *)((int)local_40 + 1);\n  } while ((int)local_40 < local_48->num_exports);\n  iVar10 = local_3c;\n  if (local_48->num_exports < 1) goto LAB_00067580;\n  iVar25 = 0;\n  piVar18 = &pdVar19->ordinal;\n  do {\n    if (ppbVar8[iVar25] == (bfd_section *)0x0) {\n      if (*(char *)(piVar18 + 3) != '\0') {\n        iVar22 = *piVar18;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar22 = *piVar18;\njoined_r0x000676c3:\n      if (iVar22 == -1) {\n        piVar21 = piVar23 + (iVar10 - local_3c);\n        if (*piVar21 != -1) {\n          iVar10 = iVar10 + 1;\n          piVar21 = piVar23 + (iVar10 - local_3c);\n          while (*piVar21 != -1) {\n            iVar10 = iVar10 + 1;\n            piVar21 = piVar21 + 1;\n          }\n        }\n        *piVar21 = iVar25;\n        *piVar18 = iVar10;\n      }\n    }\n    iVar25 = iVar25 + 1;\n    piVar18 = piVar18 + 7;\n    if (local_48->num_exports <= iVar25) {\nLAB_00067580:\n      iVar25 = max_ordinal;\n      if ((0xffff < max_ordinal) || (0xffff < iVar10)) {\n        pcVar11 = (char *)dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar10 <= iVar25) {\n          iVar10 = iVar25;\n        }\n        einfo(pcVar11,iVar10);\n      }\n      iVar10 = count_exported_byname;\n      sVar14 = strlen(dll_name);\n      edata_sz = (int)local_44 + iVar10 * 6 + 0x29 + export_table_size * 4 + sVar14;\n      build_filler_bfd(1);\n      pe_output_file_set_long_section_names(filler_bfd);\n      return;\n    }\n  } while( true );\ncode_r0x00066da5:\n  pdVar27 = pdVar27->next;\n  **(uint **)(iVar10 + 0x14) = *puVar1;\n  goto joined_r0x00066d64;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "bfd_symbol **ppbVar2;" type_identifier (pointer_declarator "**ppbVar2" * (pointer_declarator "*ppbVar2" * identifier)) ;) (declaration "bfd_symbol **ppbVar3;" type_identifier (pointer_declarator "**ppbVar3" * (pointer_declarator "*ppbVar3" * identifier)) ;) (declaration "bfd *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "undefined3 uVar7;" type_identifier identifier ;) (declaration "bfd_section **ppbVar8;" type_identifier (pointer_declarator "**ppbVar8" * (pointer_declarator "*ppbVar8" * identifier)) ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "bfd_section *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "bfd_symbol *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "size_t sVar14;" primitive_type identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "def_file *pdVar16;" type_identifier (pointer_declarator "*pdVar16" * identifier) ;) (declaration "def_file_export *pdVar17;" type_identifier (pointer_declarator "*pdVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "def_file_export *pdVar19;" type_identifier (pointer_declarator "*pdVar19" * identifier) ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "def_file *pdVar24;" type_identifier (pointer_declarator "*pdVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "def_file_export *pdVar26;" type_identifier (pointer_declarator "*pdVar26" * identifier) ;) (declaration "def_file_aligncomm *pdVar27;" type_identifier (pointer_declarator "*pdVar27" * identifier) ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "char cVar29;" primitive_type identifier ;) (declaration "byte *pbVar30;" type_identifier (pointer_declarator "*pbVar30" * identifier) ;) (declaration "byte *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "bool bVar32;" primitive_type identifier ;) (declaration "bool bVar33;" primitive_type identifier ;) (declaration "bool bVar34;" primitive_type identifier ;) (declaration "bool bVar35;" primitive_type identifier ;) (declaration "byte bVar36;" type_identifier identifier ;) (declaration "def_file *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "bfd *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "char *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int is_dup;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar36 = 0;" (assignment_expression "bVar36 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x66ca9;" (assignment_expression "uStack_14 = 0x66ca9" identifier = number_literal) ;) (expression_statement "pe_dll_id_target(abfd->xvec->name);" (call_expression "pe_dll_id_target(abfd->xvec->name)" identifier (argument_list "(abfd->xvec->name)" ( (field_expression "abfd->xvec->name" (field_expression "abfd->xvec" identifier -> field_identifier) -> field_identifier) ))) ;) (expression_statement "pe_output_file_set_long_section_names(abfd);" (call_expression "pe_output_file_set_long_section_names(abfd)" identifier (argument_list "(abfd)" ( identifier ))) ;) (if_statement "if (pe_def_file == (def_file *)0x0) {\n    pe_def_file = def_file_empty();\n  }" if (parenthesized_expression "(pe_def_file == (def_file *)0x0)" ( (binary_expression "pe_def_file == (def_file *)0x0" identifier == (cast_expression "(def_file *)0x0" ( (type_descriptor "def_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pe_def_file = def_file_empty();\n  }" { (expression_statement "pe_def_file = def_file_empty();" (assignment_expression "pe_def_file = def_file_empty()" identifier = (call_expression "def_file_empty()" identifier (argument_list "()" ( )))) ;) })) (for_statement "for (pbVar4 = info->input_bfds; pbVar4 != (bfd *)0x0; pbVar4 = (pbVar4->link).next) {\n    iVar10 = bfd_get_section_by_name(pbVar4,".drectve");\n    if (iVar10 != 0) {\n      iVar25 = *(int *)(iVar10 + 0x2c);\n      pcVar11 = (char *)xmalloc(iVar25);\n      bfd_get_section_contents(pbVar4,iVar10,pcVar11,0,0,iVar25,iVar25 >> 0x1f);\n      def_file_add_directive(pe_def_file,pcVar11,iVar25);\n      free(pcVar11);\n    }\n  }" for ( (assignment_expression "pbVar4 = info->input_bfds" identifier = (field_expression "info->input_bfds" identifier -> field_identifier)) ; (binary_expression "pbVar4 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pbVar4 = (pbVar4->link).next" identifier = (field_expression "(pbVar4->link).next" (parenthesized_expression "(pbVar4->link)" ( (field_expression "pbVar4->link" identifier -> field_identifier) )) . field_identifier)) ) (compound_statement "{\n    iVar10 = bfd_get_section_by_name(pbVar4,".drectve");\n    if (iVar10 != 0) {\n      iVar25 = *(int *)(iVar10 + 0x2c);\n      pcVar11 = (char *)xmalloc(iVar25);\n      bfd_get_section_contents(pbVar4,iVar10,pcVar11,0,0,iVar25,iVar25 >> 0x1f);\n      def_file_add_directive(pe_def_file,pcVar11,iVar25);\n      free(pcVar11);\n    }\n  }" { (expression_statement "iVar10 = bfd_get_section_by_name(pbVar4,".drectve");" (assignment_expression "iVar10 = bfd_get_section_by_name(pbVar4,".drectve")" identifier = (call_expression "bfd_get_section_by_name(pbVar4,".drectve")" identifier (argument_list "(pbVar4,".drectve")" ( identifier , (string_literal "".drectve"" " string_content ") )))) ;) (if_statement "if (iVar10 != 0) {\n      iVar25 = *(int *)(iVar10 + 0x2c);\n      pcVar11 = (char *)xmalloc(iVar25);\n      bfd_get_section_contents(pbVar4,iVar10,pcVar11,0,0,iVar25,iVar25 >> 0x1f);\n      def_file_add_directive(pe_def_file,pcVar11,iVar25);\n      free(pcVar11);\n    }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar25 = *(int *)(iVar10 + 0x2c);\n      pcVar11 = (char *)xmalloc(iVar25);\n      bfd_get_section_contents(pbVar4,iVar10,pcVar11,0,0,iVar25,iVar25 >> 0x1f);\n      def_file_add_directive(pe_def_file,pcVar11,iVar25);\n      free(pcVar11);\n    }" { (expression_statement "iVar25 = *(int *)(iVar10 + 0x2c);" (assignment_expression "iVar25 = *(int *)(iVar10 + 0x2c)" identifier = (pointer_expression "*(int *)(iVar10 + 0x2c)" * (cast_expression "(int *)(iVar10 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "pcVar11 = (char *)xmalloc(iVar25);" (assignment_expression "pcVar11 = (char *)xmalloc(iVar25)" identifier = (cast_expression "(char *)xmalloc(iVar25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar25)" identifier (argument_list "(iVar25)" ( identifier ))))) ;) (expression_statement "bfd_get_section_contents(pbVar4,iVar10,pcVar11,0,0,iVar25,iVar25 >> 0x1f);" (call_expression "bfd_get_section_contents(pbVar4,iVar10,pcVar11,0,0,iVar25,iVar25 >> 0x1f)" identifier (argument_list "(pbVar4,iVar10,pcVar11,0,0,iVar25,iVar25 >> 0x1f)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , (binary_expression "iVar25 >> 0x1f" identifier >> number_literal) ))) ;) (expression_statement "def_file_add_directive(pe_def_file,pcVar11,iVar25);" (call_expression "def_file_add_directive(pe_def_file,pcVar11,iVar25)" identifier (argument_list "(pe_def_file,pcVar11,iVar25)" ( identifier , identifier , identifier ))) ;) (expression_statement "free(pcVar11);" (call_expression "free(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;) })) })) (expression_statement "pdVar27 = pe_def_file->aligncomms;" (assignment_expression "pdVar27 = pe_def_file->aligncomms" identifier = (field_expression "pe_def_file->aligncomms" identifier -> field_identifier)) ;) (labeled_statement "joined_r0x00066d64:\n  if (pdVar27 != (def_file_aligncomm *)0x0) {\n    do {\n      iVar10 = bfd_link_hash_lookup(info->hash,pdVar27->symbol_name,0,0,0);\n      if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x05')) {\n        puVar1 = &pdVar27->alignment;\n        if (**(uint **)(iVar10 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      pdVar27 = pdVar27->next;\n      if (pdVar27 == (def_file_aligncomm *)0x0) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (pdVar27 != (def_file_aligncomm *)0x0) {\n    do {\n      iVar10 = bfd_link_hash_lookup(info->hash,pdVar27->symbol_name,0,0,0);\n      if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x05')) {\n        puVar1 = &pdVar27->alignment;\n        if (**(uint **)(iVar10 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      pdVar27 = pdVar27->next;\n      if (pdVar27 == (def_file_aligncomm *)0x0) break;\n    } while( true );\n  }" if (parenthesized_expression "(pdVar27 != (def_file_aligncomm *)0x0)" ( (binary_expression "pdVar27 != (def_file_aligncomm *)0x0" identifier != (cast_expression "(def_file_aligncomm *)0x0" ( (type_descriptor "def_file_aligncomm *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      iVar10 = bfd_link_hash_lookup(info->hash,pdVar27->symbol_name,0,0,0);\n      if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x05')) {\n        puVar1 = &pdVar27->alignment;\n        if (**(uint **)(iVar10 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      pdVar27 = pdVar27->next;\n      if (pdVar27 == (def_file_aligncomm *)0x0) break;\n    } while( true );\n  }" { (do_statement "do {\n      iVar10 = bfd_link_hash_lookup(info->hash,pdVar27->symbol_name,0,0,0);\n      if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x05')) {\n        puVar1 = &pdVar27->alignment;\n        if (**(uint **)(iVar10 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      pdVar27 = pdVar27->next;\n      if (pdVar27 == (def_file_aligncomm *)0x0) break;\n    } while( true );" do (compound_statement "{\n      iVar10 = bfd_link_hash_lookup(info->hash,pdVar27->symbol_name,0,0,0);\n      if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x05')) {\n        puVar1 = &pdVar27->alignment;\n        if (**(uint **)(iVar10 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      pdVar27 = pdVar27->next;\n      if (pdVar27 == (def_file_aligncomm *)0x0) break;\n    }" { (expression_statement "iVar10 = bfd_link_hash_lookup(info->hash,pdVar27->symbol_name,0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(info->hash,pdVar27->symbol_name,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(info->hash,pdVar27->symbol_name,0,0,0)" identifier (argument_list "(info->hash,pdVar27->symbol_name,0,0,0)" ( (field_expression "info->hash" identifier -> field_identifier) , (field_expression "pdVar27->symbol_name" identifier -> field_identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x05')) {\n        puVar1 = &pdVar27->alignment;\n        if (**(uint **)(iVar10 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }" if (parenthesized_expression "((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x05'))" ( (binary_expression "(iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x05')" (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x05')" ( (binary_expression "*(char *)(iVar10 + 0xc) == '\x05'" (pointer_expression "*(char *)(iVar10 + 0xc)" * (cast_expression "(char *)(iVar10 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) == (char_literal "'\x05'" ' escape_sequence ')) ))) )) (compound_statement "{\n        puVar1 = &pdVar27->alignment;\n        if (**(uint **)(iVar10 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }" { (expression_statement "puVar1 = &pdVar27->alignment;" (assignment_expression "puVar1 = &pdVar27->alignment" identifier = (pointer_expression "&pdVar27->alignment" & (field_expression "pdVar27->alignment" identifier -> field_identifier))) ;) (if_statement "if (**(uint **)(iVar10 + 0x14) < *puVar1) goto code_r0x00066da5;" if (parenthesized_expression "(**(uint **)(iVar10 + 0x14) < *puVar1)" ( (binary_expression "**(uint **)(iVar10 + 0x14) < *puVar1" (pointer_expression "**(uint **)(iVar10 + 0x14)" * (pointer_expression "*(uint **)(iVar10 + 0x14)" * (cast_expression "(uint **)(iVar10 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) < (pointer_expression "*puVar1" * identifier)) )) (goto_statement "goto code_r0x00066da5;" goto statement_identifier ;)) })) (expression_statement "pdVar27 = pdVar27->next;" (assignment_expression "pdVar27 = pdVar27->next" identifier = (field_expression "pdVar27->next" identifier -> field_identifier)) ;) (if_statement "if (pdVar27 == (def_file_aligncomm *)0x0) break;" if (parenthesized_expression "(pdVar27 == (def_file_aligncomm *)0x0)" ( (binary_expression "pdVar27 == (def_file_aligncomm *)0x0" identifier == (cast_expression "(def_file_aligncomm *)0x0" ( (type_descriptor "def_file_aligncomm *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (expression_statement "bVar9 = *(byte *)info;" (assignment_expression "bVar9 = *(byte *)info" identifier = (pointer_expression "*(byte *)info" * (cast_expression "(byte *)info" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((bVar9 & 2) == 0) {\n    if (pe_def_file->num_exports != 0) {\n      if (pe_dll_export_everything != 0) goto LAB_00066fad;\n      iVar10 = pe_def_file->num_exports;\n      if (pe_dll_kill_ats != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }\n    pdVar24 = pe_def_file;\n    if ((pe_dll_export_everything != 0) && (pe_dll_exclude_all_symbols == 0)) {\nLAB_00066df0:\n      local_44 = info->input_bfds;\n      if (local_44 != (bfd *)0x0) {\n        pbVar12 = (bfd_section *)(PTR__bfd_std_section_001cefbc + 0xc0);\n        while (iVar10 = bfd_generic_link_read_symbols(local_44), iVar10 != 0) {\n          if (0 < (int)local_44->symcount) {\n            ppbVar2 = local_44->outsymbols + local_44->symcount;\n            local_48 = (def_file *)local_44->outsymbols;\n            do {\n              while ((pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))))) {\nLAB_00066f48:\n                local_48 = (def_file *)((int)local_48 + 4);\n                if ((def_file *)ppbVar2 == local_48) goto LAB_00067678;\n              }\n              bVar33 = link_info.version_info == (bfd_elf_version_tree *)0x0;\n              if (!bVar33) {\n                iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name);\n                bVar33 = iVar10 == 0;\n                if (!bVar33) goto LAB_00066f48;\n                pbVar13 = *(bfd_symbol **)local_48;\n              }\n              bVar32 = false;\n              pdVar24 = (def_file *)pbVar13->name;\n              iVar10 = 6;\n              pdVar16 = pdVar24;\n              pbVar30 = (byte *)0x1adaf4;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar32 = *(byte *)&pdVar16->name < *pbVar30;\n                bVar33 = *(byte *)&pdVar16->name == *pbVar30;\n                pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1);\n                pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1;\n              } while (bVar33);\n              if ((!bVar32 && !bVar33) == bVar32) goto LAB_00066f48;\n              sVar14 = strlen((char *)pdVar24);\n              pcVar11 = (char *)xmalloc(sVar14 + 7);\n              sprintf(pcVar11,"%s%s","__imp_",pdVar24);\n              iVar10 = bfd_link_hash_lookup(info->hash,pcVar11,0,0,0);\n              free(pcVar11);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (pe_details->underscored != 0) {\n                pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))\n                ;\n              }\n              iVar10 = auto_export(local_44,(def_file *)&pe_def_file->num_exports,\n                                   (char *)&pe_def_file->exports,pdVar24);\n              if (iVar10 == 0) goto LAB_00066f48;\n              is_dup = 0;\n              pdVar19 = def_file_add_export(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,\n                                            &is_dup);\n              if (is_dup != 0) goto LAB_00066f48;\n              ppbVar3 = (bfd_symbol **)((int)local_48 + 4);\n              pdVar19->flag_data = ((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1) & 1;\n              local_48 = (def_file *)ppbVar3;\n            } while (ppbVar2 != ppbVar3);\n          }\nLAB_00067678:\n          local_44 = (local_44->link).next;\n          if (local_44 == (bfd *)0x0) goto LAB_00066fbb;\n        }\n        pcVar11 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        einfo(pcVar11,local_44);\n        iVar10 = pe_def_file->num_exports;\n        pdVar24 = pe_def_file;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar10 = pe_def_file->num_exports;\n      pdVar24 = pe_def_file;\n      if (iVar10 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }\nLAB_00067375:\n    if ((bVar9 & 1) == 0) {\n      return;\n    }\n  }\n  else {\n    if ((pe_dll_export_everything != 0) || (iVar10 = pe_def_file->num_exports, iVar10 == 0)) {\nLAB_00066fad:\n      if (pe_dll_exclude_all_symbols == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (pe_dll_kill_ats == 0) {\nLAB_000671fd:\n      sVar14 = pe_def_file->num_exports;\n      local_48 = pe_def_file;\n      if (pe_dll_stdcall_aliases == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar33 = false;\n      bVar32 = sVar14 == 0;\n      if (0 < (int)sVar14) {\n        local_40 = (char *)0x0;\n        local_44 = (bfd *)0x0;\n        do {\n          pbVar30 = *(byte **)((int)&local_48->exports->name + (int)local_40);\n          iVar10 = 6;\n          pbVar28 = pbVar30;\n          pbVar31 = (byte *)0x1adaf4;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar33 = *pbVar28 < *pbVar31;\n            bVar32 = *pbVar28 == *pbVar31;\n            pbVar28 = pbVar28 + (uint)bVar36 * -2 + 1;\n            pbVar31 = pbVar31 + (uint)bVar36 * -2 + 1;\n          } while (bVar32);\n          if (((!bVar33 && !bVar32) != bVar33) &&\n             (pcVar11 = strchr((char *)pbVar30,0x40), pcVar11 != (char *)0x0)) {\n            is_dup = 1;\n            pdVar16 = (def_file *)xstrdup(pbVar30 + (*pbVar30 == 0x40));\n            pcVar11 = strchr((char *)pdVar16,0x40);\n            pdVar24 = pe_def_file;\n            *pcVar11 = '\0';\n            iVar10 = auto_export((bfd *)0x0,(def_file *)&pdVar24->num_exports,\n                                 (char *)&pdVar24->exports,pdVar16);\n            if (iVar10 != 0) {\n              def_file_add_export(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup);\n            }\n            local_48 = pe_def_file;\n            if (is_dup != 0) {\n              free(pdVar16);\n              local_48 = pe_def_file;\n            }\n          }\n          local_44 = (bfd *)((int)local_44 + 1);\n          sVar14 = local_48->num_exports;\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar33 = local_44 < sVar14;\n          bVar32 = local_44 == (bfd *)sVar14;\n        } while ((int)local_44 < (int)sVar14);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar10 = 0;\n      iVar25 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar33 = false;\n      iVar25 = 0;\n      local_48 = pe_def_file;\n      if (iVar10 < 1) goto LAB_000671fd;\n      do {\n        pcVar11 = local_48->exports[iVar25].name;\n        cVar29 = *pcVar11;\n        if ((cVar29 != '?') && (pcVar15 = strchr(pcVar11,0x40), pcVar15 != (char *)0x0)) {\n          pcVar11 = (char *)xstrdup(pcVar11 + (cVar29 == '@'));\n          pcVar15 = strrchr(pcVar11,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pcVar15 = pe_def_file->exports[iVar25].name;\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            einfo(pcVar20,pcVar15);\n          }\n          else {\n            *pcVar15 = '\0';\n          }\n          local_48 = pe_def_file;\n          bVar33 = true;\n          pe_def_file->exports[iVar25].name = pcVar11;\n        }\n        sVar14 = local_48->num_exports;\n        iVar25 = iVar25 + 1;\n      } while (iVar25 < (int)sVar14);\n      if (bVar33) {\n        qsort(local_48->exports,sVar14,0x1c,pe_export_sort);\n        local_48 = pe_def_file;\n        sVar14 = pe_def_file->num_exports;\n      }\n      if (pe_dll_stdcall_aliases != 0) goto LAB_0006709d;\nLAB_00067212:\n      pdVar24 = local_48;\n      pdVar19 = local_48->exports;\n      if ((int)sVar14 < 1) goto LAB_00067c38;\n      local_48 = (def_file *)0x0;\n      iVar25 = 0;\n      pdVar26 = pdVar19;\n      do {\n        if (local_48 == (def_file *)0x0) {\nLAB_00067327:\n          if ((def_file *)iVar25 != local_48) {\n            pdVar17 = pdVar19 + iVar25;\n            pdVar17->name = pdVar26->name;\n            pdVar17->internal_name = pdVar26->internal_name;\n            pdVar17->its_name = pdVar26->its_name;\n            pdVar17->ordinal = pdVar26->ordinal;\n            pdVar17->hint = pdVar26->hint;\n            cVar29 = pdVar26->flag_constant;\n            cVar5 = pdVar26->flag_noname;\n            cVar6 = pdVar26->flag_data;\n            pdVar17->flag_private = pdVar26->flag_private;\n            pdVar17->flag_constant = cVar29;\n            pdVar17->flag_noname = cVar5;\n            pdVar17->flag_data = cVar6;\n            uVar7 = *(undefined3 *)&pdVar26->field_0x19;\n            pdVar17->flag_forward = pdVar26->flag_forward;\n            *(undefined3 *)&pdVar17->field_0x19 = uVar7;\n          }\n          iVar25 = iVar25 + 1;\n        }\n        else {\n          local_40 = pdVar26->name;\n          iVar10 = strcmp(local_40,pdVar26[-1].name);\n          if (iVar10 != 0) goto LAB_00067327;\n          pdVar17 = pdVar19 + iVar25 + -1;\n          iVar10 = pdVar17->ordinal;\n          if (((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)) || (iVar10 == iVar22)) {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              einfo(pcVar15,pcVar11);\n              local_40 = pdVar26->name;\n            }\nLAB_00067748:\n            iVar22 = pdVar26->ordinal;\n            if (iVar22 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            pdVar17->ordinal = iVar22;\n          }\n          pdVar17->flag_private = pdVar17->flag_private | pdVar26->flag_private;\n          pdVar17->flag_constant = pdVar17->flag_constant | pdVar26->flag_constant;\n          pdVar17->flag_noname = pdVar17->flag_noname | pdVar26->flag_noname;\n          pdVar17->flag_data = pdVar17->flag_data | pdVar26->flag_data;\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if (pdVar26->internal_name != (char *)0x0) {\n            free(pdVar26->internal_name);\n          }\n          pdVar24 = pe_def_file;\n          if (pdVar26->its_name != (char *)0x0) {\n            free(pdVar26->its_name);\n            pdVar24 = pe_def_file;\n          }\n        }\n        local_48 = (def_file *)((int)local_48 + 1);\n        pdVar26 = pdVar26 + 1;\n      } while ((int)local_48 < pdVar24->num_exports);\n      iVar10 = iVar25 * 8;\n      local_48 = pdVar24;\n    }\n    local_48->num_exports = iVar25;\n    exported_symbol_offsets = (bfd_vma *)xmalloc(iVar10);\n    exported_symbol_sections = (bfd_section **)xmalloc(pe_def_file->num_exports << 2);\n    pdVar24 = pe_def_file;\n    memset(exported_symbol_sections,0,pe_def_file->num_exports * 4);\n    iVar10 = pdVar24->num_exports;\n    max_ordinal = 0;\n    min_ordinal = 0x10000;\n    count_exported = 0;\n    count_exported_byname = 0;\n    count_with_ordinals = 0;\n    if (0 < iVar10) {\n      local_48 = (def_file *)0x0;\n      do {\n        pcVar11 = pdVar24->exports[(int)local_48].internal_name;\n        lang_add_gc_name(pcVar11);\n        sVar14 = strlen(pcVar11);\n        pcVar15 = (char *)xmalloc(sVar14 + 2);\n        if ((pe_details->underscored == 0) || (*pcVar11 == '@')) {\n          strcpy(pcVar15,pcVar11);\n        }\n        else {\n          *pcVar15 = '_';\n          strcpy(pcVar15 + 1,pcVar11);\n          pcVar20 = (char *)xstrdup(pcVar15);\n          lang_add_gc_name(pcVar20);\n        }\n        iVar10 = bfd_link_hash_lookup(info->hash,pcVar15,0,0,1);\n        pdVar24 = pe_def_file;\n        if (iVar10 == 0) {\n          pcVar20 = strchr(pcVar11,0x2e);\n          if (pcVar20 != (char *)0x0) {\nLAB_00067968:\n            pdVar24 = pe_def_file;\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            pdVar19->flag_forward = '\x01';\n            goto LAB_00067863;\n          }\n          pcVar20 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          pcVar20 = (char *)dcgettext(0,pcVar20,5);\n          einfo(pcVar20,pcVar11);\n          pdVar24 = pe_def_file;\n        }\n        else {\n          cVar29 = *(char *)(iVar10 + 0xc);\n          if ((cVar29 - 3U & 0xfd) == 0) {\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            if (cVar29 == '\x03') {\n              exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14);\n            }\n            else {\n              exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;\n            }\nLAB_00067863:\n            iVar10 = pdVar19->ordinal;\n            if (iVar10 != -1) {\n              if (max_ordinal < iVar10) {\n                max_ordinal = iVar10;\n              }\n              if (iVar10 < min_ordinal) {\n                min_ordinal = iVar10;\n              }\n              count_with_ordinals = count_with_ordinals + 1;\n            }\n          }\n          else {\n            pcVar20 = strchr(pcVar11,0x2e);\n            if (pcVar20 != (char *)0x0) goto LAB_00067968;\n            if (cVar29 == '\x01') {\n              pcVar20 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       );\n            einfo(pcVar20,pcVar11,cVar29,3);\n            pdVar24 = pe_def_file;\n          }\n        }\n        free(pcVar15);\n        local_48 = (def_file *)((int)local_48 + 1);\n        iVar10 = pdVar24->num_exports;\n      } while ((int)local_48 < iVar10);\n    }\njoined_r0x00067b8d:\n    if (iVar10 == 0) {\nLAB_0006736e:\n      bVar9 = *(byte *)info;\n      goto LAB_00067375;\n    }\n  }" if (parenthesized_expression "((bVar9 & 2) == 0)" ( (binary_expression "(bVar9 & 2) == 0" (parenthesized_expression "(bVar9 & 2)" ( (binary_expression "bVar9 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    if (pe_def_file->num_exports != 0) {\n      if (pe_dll_export_everything != 0) goto LAB_00066fad;\n      iVar10 = pe_def_file->num_exports;\n      if (pe_dll_kill_ats != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }\n    pdVar24 = pe_def_file;\n    if ((pe_dll_export_everything != 0) && (pe_dll_exclude_all_symbols == 0)) {\nLAB_00066df0:\n      local_44 = info->input_bfds;\n      if (local_44 != (bfd *)0x0) {\n        pbVar12 = (bfd_section *)(PTR__bfd_std_section_001cefbc + 0xc0);\n        while (iVar10 = bfd_generic_link_read_symbols(local_44), iVar10 != 0) {\n          if (0 < (int)local_44->symcount) {\n            ppbVar2 = local_44->outsymbols + local_44->symcount;\n            local_48 = (def_file *)local_44->outsymbols;\n            do {\n              while ((pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))))) {\nLAB_00066f48:\n                local_48 = (def_file *)((int)local_48 + 4);\n                if ((def_file *)ppbVar2 == local_48) goto LAB_00067678;\n              }\n              bVar33 = link_info.version_info == (bfd_elf_version_tree *)0x0;\n              if (!bVar33) {\n                iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name);\n                bVar33 = iVar10 == 0;\n                if (!bVar33) goto LAB_00066f48;\n                pbVar13 = *(bfd_symbol **)local_48;\n              }\n              bVar32 = false;\n              pdVar24 = (def_file *)pbVar13->name;\n              iVar10 = 6;\n              pdVar16 = pdVar24;\n              pbVar30 = (byte *)0x1adaf4;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar32 = *(byte *)&pdVar16->name < *pbVar30;\n                bVar33 = *(byte *)&pdVar16->name == *pbVar30;\n                pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1);\n                pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1;\n              } while (bVar33);\n              if ((!bVar32 && !bVar33) == bVar32) goto LAB_00066f48;\n              sVar14 = strlen((char *)pdVar24);\n              pcVar11 = (char *)xmalloc(sVar14 + 7);\n              sprintf(pcVar11,"%s%s","__imp_",pdVar24);\n              iVar10 = bfd_link_hash_lookup(info->hash,pcVar11,0,0,0);\n              free(pcVar11);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (pe_details->underscored != 0) {\n                pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))\n                ;\n              }\n              iVar10 = auto_export(local_44,(def_file *)&pe_def_file->num_exports,\n                                   (char *)&pe_def_file->exports,pdVar24);\n              if (iVar10 == 0) goto LAB_00066f48;\n              is_dup = 0;\n              pdVar19 = def_file_add_export(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,\n                                            &is_dup);\n              if (is_dup != 0) goto LAB_00066f48;\n              ppbVar3 = (bfd_symbol **)((int)local_48 + 4);\n              pdVar19->flag_data = ((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1) & 1;\n              local_48 = (def_file *)ppbVar3;\n            } while (ppbVar2 != ppbVar3);\n          }\nLAB_00067678:\n          local_44 = (local_44->link).next;\n          if (local_44 == (bfd *)0x0) goto LAB_00066fbb;\n        }\n        pcVar11 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        einfo(pcVar11,local_44);\n        iVar10 = pe_def_file->num_exports;\n        pdVar24 = pe_def_file;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar10 = pe_def_file->num_exports;\n      pdVar24 = pe_def_file;\n      if (iVar10 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }\nLAB_00067375:\n    if ((bVar9 & 1) == 0) {\n      return;\n    }\n  }" { (if_statement "if (pe_def_file->num_exports != 0) {\n      if (pe_dll_export_everything != 0) goto LAB_00066fad;\n      iVar10 = pe_def_file->num_exports;\n      if (pe_dll_kill_ats != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }" if (parenthesized_expression "(pe_def_file->num_exports != 0)" ( (binary_expression "pe_def_file->num_exports != 0" (field_expression "pe_def_file->num_exports" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n      if (pe_dll_export_everything != 0) goto LAB_00066fad;\n      iVar10 = pe_def_file->num_exports;\n      if (pe_dll_kill_ats != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }" { (if_statement "if (pe_dll_export_everything != 0) goto LAB_00066fad;" if (parenthesized_expression "(pe_dll_export_everything != 0)" ( (binary_expression "pe_dll_export_everything != 0" identifier != number_literal) )) (goto_statement "goto LAB_00066fad;" goto statement_identifier ;)) (expression_statement "iVar10 = pe_def_file->num_exports;" (assignment_expression "iVar10 = pe_def_file->num_exports" identifier = (field_expression "pe_def_file->num_exports" identifier -> field_identifier)) ;) (if_statement "if (pe_dll_kill_ats != 0) goto LAB_00066fde;" if (parenthesized_expression "(pe_dll_kill_ats != 0)" ( (binary_expression "pe_dll_kill_ats != 0" identifier != number_literal) )) (goto_statement "goto LAB_00066fde;" goto statement_identifier ;)) (goto_statement "goto LAB_000671fd;" goto statement_identifier ;) })) (expression_statement "pdVar24 = pe_def_file;" (assignment_expression "pdVar24 = pe_def_file" identifier = identifier) ;) (if_statement "if ((pe_dll_export_everything != 0) && (pe_dll_exclude_all_symbols == 0)) {\nLAB_00066df0:\n      local_44 = info->input_bfds;\n      if (local_44 != (bfd *)0x0) {\n        pbVar12 = (bfd_section *)(PTR__bfd_std_section_001cefbc + 0xc0);\n        while (iVar10 = bfd_generic_link_read_symbols(local_44), iVar10 != 0) {\n          if (0 < (int)local_44->symcount) {\n            ppbVar2 = local_44->outsymbols + local_44->symcount;\n            local_48 = (def_file *)local_44->outsymbols;\n            do {\n              while ((pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))))) {\nLAB_00066f48:\n                local_48 = (def_file *)((int)local_48 + 4);\n                if ((def_file *)ppbVar2 == local_48) goto LAB_00067678;\n              }\n              bVar33 = link_info.version_info == (bfd_elf_version_tree *)0x0;\n              if (!bVar33) {\n                iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name);\n                bVar33 = iVar10 == 0;\n                if (!bVar33) goto LAB_00066f48;\n                pbVar13 = *(bfd_symbol **)local_48;\n              }\n              bVar32 = false;\n              pdVar24 = (def_file *)pbVar13->name;\n              iVar10 = 6;\n              pdVar16 = pdVar24;\n              pbVar30 = (byte *)0x1adaf4;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar32 = *(byte *)&pdVar16->name < *pbVar30;\n                bVar33 = *(byte *)&pdVar16->name == *pbVar30;\n                pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1);\n                pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1;\n              } while (bVar33);\n              if ((!bVar32 && !bVar33) == bVar32) goto LAB_00066f48;\n              sVar14 = strlen((char *)pdVar24);\n              pcVar11 = (char *)xmalloc(sVar14 + 7);\n              sprintf(pcVar11,"%s%s","__imp_",pdVar24);\n              iVar10 = bfd_link_hash_lookup(info->hash,pcVar11,0,0,0);\n              free(pcVar11);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (pe_details->underscored != 0) {\n                pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))\n                ;\n              }\n              iVar10 = auto_export(local_44,(def_file *)&pe_def_file->num_exports,\n                                   (char *)&pe_def_file->exports,pdVar24);\n              if (iVar10 == 0) goto LAB_00066f48;\n              is_dup = 0;\n              pdVar19 = def_file_add_export(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,\n                                            &is_dup);\n              if (is_dup != 0) goto LAB_00066f48;\n              ppbVar3 = (bfd_symbol **)((int)local_48 + 4);\n              pdVar19->flag_data = ((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1) & 1;\n              local_48 = (def_file *)ppbVar3;\n            } while (ppbVar2 != ppbVar3);\n          }\nLAB_00067678:\n          local_44 = (local_44->link).next;\n          if (local_44 == (bfd *)0x0) goto LAB_00066fbb;\n        }\n        pcVar11 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        einfo(pcVar11,local_44);\n        iVar10 = pe_def_file->num_exports;\n        pdVar24 = pe_def_file;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar10 = pe_def_file->num_exports;\n      pdVar24 = pe_def_file;\n      if (iVar10 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }" if (parenthesized_expression "((pe_dll_export_everything != 0) && (pe_dll_exclude_all_symbols == 0))" ( (binary_expression "(pe_dll_export_everything != 0) && (pe_dll_exclude_all_symbols == 0)" (parenthesized_expression "(pe_dll_export_everything != 0)" ( (binary_expression "pe_dll_export_everything != 0" identifier != number_literal) )) && (parenthesized_expression "(pe_dll_exclude_all_symbols == 0)" ( (binary_expression "pe_dll_exclude_all_symbols == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00066df0:\n      local_44 = info->input_bfds;\n      if (local_44 != (bfd *)0x0) {\n        pbVar12 = (bfd_section *)(PTR__bfd_std_section_001cefbc + 0xc0);\n        while (iVar10 = bfd_generic_link_read_symbols(local_44), iVar10 != 0) {\n          if (0 < (int)local_44->symcount) {\n            ppbVar2 = local_44->outsymbols + local_44->symcount;\n            local_48 = (def_file *)local_44->outsymbols;\n            do {\n              while ((pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))))) {\nLAB_00066f48:\n                local_48 = (def_file *)((int)local_48 + 4);\n                if ((def_file *)ppbVar2 == local_48) goto LAB_00067678;\n              }\n              bVar33 = link_info.version_info == (bfd_elf_version_tree *)0x0;\n              if (!bVar33) {\n                iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name);\n                bVar33 = iVar10 == 0;\n                if (!bVar33) goto LAB_00066f48;\n                pbVar13 = *(bfd_symbol **)local_48;\n              }\n              bVar32 = false;\n              pdVar24 = (def_file *)pbVar13->name;\n              iVar10 = 6;\n              pdVar16 = pdVar24;\n              pbVar30 = (byte *)0x1adaf4;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar32 = *(byte *)&pdVar16->name < *pbVar30;\n                bVar33 = *(byte *)&pdVar16->name == *pbVar30;\n                pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1);\n                pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1;\n              } while (bVar33);\n              if ((!bVar32 && !bVar33) == bVar32) goto LAB_00066f48;\n              sVar14 = strlen((char *)pdVar24);\n              pcVar11 = (char *)xmalloc(sVar14 + 7);\n              sprintf(pcVar11,"%s%s","__imp_",pdVar24);\n              iVar10 = bfd_link_hash_lookup(info->hash,pcVar11,0,0,0);\n              free(pcVar11);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (pe_details->underscored != 0) {\n                pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))\n                ;\n              }\n              iVar10 = auto_export(local_44,(def_file *)&pe_def_file->num_exports,\n                                   (char *)&pe_def_file->exports,pdVar24);\n              if (iVar10 == 0) goto LAB_00066f48;\n              is_dup = 0;\n              pdVar19 = def_file_add_export(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,\n                                            &is_dup);\n              if (is_dup != 0) goto LAB_00066f48;\n              ppbVar3 = (bfd_symbol **)((int)local_48 + 4);\n              pdVar19->flag_data = ((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1) & 1;\n              local_48 = (def_file *)ppbVar3;\n            } while (ppbVar2 != ppbVar3);\n          }\nLAB_00067678:\n          local_44 = (local_44->link).next;\n          if (local_44 == (bfd *)0x0) goto LAB_00066fbb;\n        }\n        pcVar11 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        einfo(pcVar11,local_44);\n        iVar10 = pe_def_file->num_exports;\n        pdVar24 = pe_def_file;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar10 = pe_def_file->num_exports;\n      pdVar24 = pe_def_file;\n      if (iVar10 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }" { (labeled_statement "LAB_00066df0:\n      local_44 = info->input_bfds;" statement_identifier : (expression_statement "local_44 = info->input_bfds;" (assignment_expression "local_44 = info->input_bfds" identifier = (field_expression "info->input_bfds" identifier -> field_identifier)) ;)) (if_statement "if (local_44 != (bfd *)0x0) {\n        pbVar12 = (bfd_section *)(PTR__bfd_std_section_001cefbc + 0xc0);\n        while (iVar10 = bfd_generic_link_read_symbols(local_44), iVar10 != 0) {\n          if (0 < (int)local_44->symcount) {\n            ppbVar2 = local_44->outsymbols + local_44->symcount;\n            local_48 = (def_file *)local_44->outsymbols;\n            do {\n              while ((pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))))) {\nLAB_00066f48:\n                local_48 = (def_file *)((int)local_48 + 4);\n                if ((def_file *)ppbVar2 == local_48) goto LAB_00067678;\n              }\n              bVar33 = link_info.version_info == (bfd_elf_version_tree *)0x0;\n              if (!bVar33) {\n                iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name);\n                bVar33 = iVar10 == 0;\n                if (!bVar33) goto LAB_00066f48;\n                pbVar13 = *(bfd_symbol **)local_48;\n              }\n              bVar32 = false;\n              pdVar24 = (def_file *)pbVar13->name;\n              iVar10 = 6;\n              pdVar16 = pdVar24;\n              pbVar30 = (byte *)0x1adaf4;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar32 = *(byte *)&pdVar16->name < *pbVar30;\n                bVar33 = *(byte *)&pdVar16->name == *pbVar30;\n                pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1);\n                pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1;\n              } while (bVar33);\n              if ((!bVar32 && !bVar33) == bVar32) goto LAB_00066f48;\n              sVar14 = strlen((char *)pdVar24);\n              pcVar11 = (char *)xmalloc(sVar14 + 7);\n              sprintf(pcVar11,"%s%s","__imp_",pdVar24);\n              iVar10 = bfd_link_hash_lookup(info->hash,pcVar11,0,0,0);\n              free(pcVar11);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (pe_details->underscored != 0) {\n                pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))\n                ;\n              }\n              iVar10 = auto_export(local_44,(def_file *)&pe_def_file->num_exports,\n                                   (char *)&pe_def_file->exports,pdVar24);\n              if (iVar10 == 0) goto LAB_00066f48;\n              is_dup = 0;\n              pdVar19 = def_file_add_export(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,\n                                            &is_dup);\n              if (is_dup != 0) goto LAB_00066f48;\n              ppbVar3 = (bfd_symbol **)((int)local_48 + 4);\n              pdVar19->flag_data = ((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1) & 1;\n              local_48 = (def_file *)ppbVar3;\n            } while (ppbVar2 != ppbVar3);\n          }\nLAB_00067678:\n          local_44 = (local_44->link).next;\n          if (local_44 == (bfd *)0x0) goto LAB_00066fbb;\n        }\n        pcVar11 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        einfo(pcVar11,local_44);\n        iVar10 = pe_def_file->num_exports;\n        pdVar24 = pe_def_file;\n        goto joined_r0x00067b8d;\n      }" if (parenthesized_expression "(local_44 != (bfd *)0x0)" ( (binary_expression "local_44 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pbVar12 = (bfd_section *)(PTR__bfd_std_section_001cefbc + 0xc0);\n        while (iVar10 = bfd_generic_link_read_symbols(local_44), iVar10 != 0) {\n          if (0 < (int)local_44->symcount) {\n            ppbVar2 = local_44->outsymbols + local_44->symcount;\n            local_48 = (def_file *)local_44->outsymbols;\n            do {\n              while ((pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))))) {\nLAB_00066f48:\n                local_48 = (def_file *)((int)local_48 + 4);\n                if ((def_file *)ppbVar2 == local_48) goto LAB_00067678;\n              }\n              bVar33 = link_info.version_info == (bfd_elf_version_tree *)0x0;\n              if (!bVar33) {\n                iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name);\n                bVar33 = iVar10 == 0;\n                if (!bVar33) goto LAB_00066f48;\n                pbVar13 = *(bfd_symbol **)local_48;\n              }\n              bVar32 = false;\n              pdVar24 = (def_file *)pbVar13->name;\n              iVar10 = 6;\n              pdVar16 = pdVar24;\n              pbVar30 = (byte *)0x1adaf4;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar32 = *(byte *)&pdVar16->name < *pbVar30;\n                bVar33 = *(byte *)&pdVar16->name == *pbVar30;\n                pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1);\n                pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1;\n              } while (bVar33);\n              if ((!bVar32 && !bVar33) == bVar32) goto LAB_00066f48;\n              sVar14 = strlen((char *)pdVar24);\n              pcVar11 = (char *)xmalloc(sVar14 + 7);\n              sprintf(pcVar11,"%s%s","__imp_",pdVar24);\n              iVar10 = bfd_link_hash_lookup(info->hash,pcVar11,0,0,0);\n              free(pcVar11);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (pe_details->underscored != 0) {\n                pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))\n                ;\n              }\n              iVar10 = auto_export(local_44,(def_file *)&pe_def_file->num_exports,\n                                   (char *)&pe_def_file->exports,pdVar24);\n              if (iVar10 == 0) goto LAB_00066f48;\n              is_dup = 0;\n              pdVar19 = def_file_add_export(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,\n                                            &is_dup);\n              if (is_dup != 0) goto LAB_00066f48;\n              ppbVar3 = (bfd_symbol **)((int)local_48 + 4);\n              pdVar19->flag_data = ((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1) & 1;\n              local_48 = (def_file *)ppbVar3;\n            } while (ppbVar2 != ppbVar3);\n          }\nLAB_00067678:\n          local_44 = (local_44->link).next;\n          if (local_44 == (bfd *)0x0) goto LAB_00066fbb;\n        }\n        pcVar11 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        einfo(pcVar11,local_44);\n        iVar10 = pe_def_file->num_exports;\n        pdVar24 = pe_def_file;\n        goto joined_r0x00067b8d;\n      }" { (expression_statement "pbVar12 = (bfd_section *)(PTR__bfd_std_section_001cefbc + 0xc0);" (assignment_expression "pbVar12 = (bfd_section *)(PTR__bfd_std_section_001cefbc + 0xc0)" identifier = (cast_expression "(bfd_section *)(PTR__bfd_std_section_001cefbc + 0xc0)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_001cefbc + 0xc0)" ( (binary_expression "PTR__bfd_std_section_001cefbc + 0xc0" identifier + number_literal) )))) ;) (while_statement "while (iVar10 = bfd_generic_link_read_symbols(local_44), iVar10 != 0) {\n          if (0 < (int)local_44->symcount) {\n            ppbVar2 = local_44->outsymbols + local_44->symcount;\n            local_48 = (def_file *)local_44->outsymbols;\n            do {\n              while ((pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))))) {\nLAB_00066f48:\n                local_48 = (def_file *)((int)local_48 + 4);\n                if ((def_file *)ppbVar2 == local_48) goto LAB_00067678;\n              }\n              bVar33 = link_info.version_info == (bfd_elf_version_tree *)0x0;\n              if (!bVar33) {\n                iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name);\n                bVar33 = iVar10 == 0;\n                if (!bVar33) goto LAB_00066f48;\n                pbVar13 = *(bfd_symbol **)local_48;\n              }\n              bVar32 = false;\n              pdVar24 = (def_file *)pbVar13->name;\n              iVar10 = 6;\n              pdVar16 = pdVar24;\n              pbVar30 = (byte *)0x1adaf4;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar32 = *(byte *)&pdVar16->name < *pbVar30;\n                bVar33 = *(byte *)&pdVar16->name == *pbVar30;\n                pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1);\n                pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1;\n              } while (bVar33);\n              if ((!bVar32 && !bVar33) == bVar32) goto LAB_00066f48;\n              sVar14 = strlen((char *)pdVar24);\n              pcVar11 = (char *)xmalloc(sVar14 + 7);\n              sprintf(pcVar11,"%s%s","__imp_",pdVar24);\n              iVar10 = bfd_link_hash_lookup(info->hash,pcVar11,0,0,0);\n              free(pcVar11);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (pe_details->underscored != 0) {\n                pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))\n                ;\n              }\n              iVar10 = auto_export(local_44,(def_file *)&pe_def_file->num_exports,\n                                   (char *)&pe_def_file->exports,pdVar24);\n              if (iVar10 == 0) goto LAB_00066f48;\n              is_dup = 0;\n              pdVar19 = def_file_add_export(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,\n                                            &is_dup);\n              if (is_dup != 0) goto LAB_00066f48;\n              ppbVar3 = (bfd_symbol **)((int)local_48 + 4);\n              pdVar19->flag_data = ((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1) & 1;\n              local_48 = (def_file *)ppbVar3;\n            } while (ppbVar2 != ppbVar3);\n          }\nLAB_00067678:\n          local_44 = (local_44->link).next;\n          if (local_44 == (bfd *)0x0) goto LAB_00066fbb;\n        }" while (parenthesized_expression "(iVar10 = bfd_generic_link_read_symbols(local_44), iVar10 != 0)" ( (comma_expression "iVar10 = bfd_generic_link_read_symbols(local_44), iVar10 != 0" (assignment_expression "iVar10 = bfd_generic_link_read_symbols(local_44)" identifier = (call_expression "bfd_generic_link_read_symbols(local_44)" identifier (argument_list "(local_44)" ( identifier )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) )) (compound_statement "{\n          if (0 < (int)local_44->symcount) {\n            ppbVar2 = local_44->outsymbols + local_44->symcount;\n            local_48 = (def_file *)local_44->outsymbols;\n            do {\n              while ((pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))))) {\nLAB_00066f48:\n                local_48 = (def_file *)((int)local_48 + 4);\n                if ((def_file *)ppbVar2 == local_48) goto LAB_00067678;\n              }\n              bVar33 = link_info.version_info == (bfd_elf_version_tree *)0x0;\n              if (!bVar33) {\n                iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name);\n                bVar33 = iVar10 == 0;\n                if (!bVar33) goto LAB_00066f48;\n                pbVar13 = *(bfd_symbol **)local_48;\n              }\n              bVar32 = false;\n              pdVar24 = (def_file *)pbVar13->name;\n              iVar10 = 6;\n              pdVar16 = pdVar24;\n              pbVar30 = (byte *)0x1adaf4;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar32 = *(byte *)&pdVar16->name < *pbVar30;\n                bVar33 = *(byte *)&pdVar16->name == *pbVar30;\n                pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1);\n                pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1;\n              } while (bVar33);\n              if ((!bVar32 && !bVar33) == bVar32) goto LAB_00066f48;\n              sVar14 = strlen((char *)pdVar24);\n              pcVar11 = (char *)xmalloc(sVar14 + 7);\n              sprintf(pcVar11,"%s%s","__imp_",pdVar24);\n              iVar10 = bfd_link_hash_lookup(info->hash,pcVar11,0,0,0);\n              free(pcVar11);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (pe_details->underscored != 0) {\n                pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))\n                ;\n              }\n              iVar10 = auto_export(local_44,(def_file *)&pe_def_file->num_exports,\n                                   (char *)&pe_def_file->exports,pdVar24);\n              if (iVar10 == 0) goto LAB_00066f48;\n              is_dup = 0;\n              pdVar19 = def_file_add_export(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,\n                                            &is_dup);\n              if (is_dup != 0) goto LAB_00066f48;\n              ppbVar3 = (bfd_symbol **)((int)local_48 + 4);\n              pdVar19->flag_data = ((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1) & 1;\n              local_48 = (def_file *)ppbVar3;\n            } while (ppbVar2 != ppbVar3);\n          }\nLAB_00067678:\n          local_44 = (local_44->link).next;\n          if (local_44 == (bfd *)0x0) goto LAB_00066fbb;\n        }" { (if_statement "if (0 < (int)local_44->symcount) {\n            ppbVar2 = local_44->outsymbols + local_44->symcount;\n            local_48 = (def_file *)local_44->outsymbols;\n            do {\n              while ((pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))))) {\nLAB_00066f48:\n                local_48 = (def_file *)((int)local_48 + 4);\n                if ((def_file *)ppbVar2 == local_48) goto LAB_00067678;\n              }\n              bVar33 = link_info.version_info == (bfd_elf_version_tree *)0x0;\n              if (!bVar33) {\n                iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name);\n                bVar33 = iVar10 == 0;\n                if (!bVar33) goto LAB_00066f48;\n                pbVar13 = *(bfd_symbol **)local_48;\n              }\n              bVar32 = false;\n              pdVar24 = (def_file *)pbVar13->name;\n              iVar10 = 6;\n              pdVar16 = pdVar24;\n              pbVar30 = (byte *)0x1adaf4;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar32 = *(byte *)&pdVar16->name < *pbVar30;\n                bVar33 = *(byte *)&pdVar16->name == *pbVar30;\n                pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1);\n                pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1;\n              } while (bVar33);\n              if ((!bVar32 && !bVar33) == bVar32) goto LAB_00066f48;\n              sVar14 = strlen((char *)pdVar24);\n              pcVar11 = (char *)xmalloc(sVar14 + 7);\n              sprintf(pcVar11,"%s%s","__imp_",pdVar24);\n              iVar10 = bfd_link_hash_lookup(info->hash,pcVar11,0,0,0);\n              free(pcVar11);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (pe_details->underscored != 0) {\n                pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))\n                ;\n              }\n              iVar10 = auto_export(local_44,(def_file *)&pe_def_file->num_exports,\n                                   (char *)&pe_def_file->exports,pdVar24);\n              if (iVar10 == 0) goto LAB_00066f48;\n              is_dup = 0;\n              pdVar19 = def_file_add_export(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,\n                                            &is_dup);\n              if (is_dup != 0) goto LAB_00066f48;\n              ppbVar3 = (bfd_symbol **)((int)local_48 + 4);\n              pdVar19->flag_data = ((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1) & 1;\n              local_48 = (def_file *)ppbVar3;\n            } while (ppbVar2 != ppbVar3);\n          }" if (parenthesized_expression "(0 < (int)local_44->symcount)" ( (binary_expression "0 < (int)local_44->symcount" number_literal < (cast_expression "(int)local_44->symcount" ( (type_descriptor "int" primitive_type) ) (field_expression "local_44->symcount" identifier -> field_identifier))) )) (compound_statement "{\n            ppbVar2 = local_44->outsymbols + local_44->symcount;\n            local_48 = (def_file *)local_44->outsymbols;\n            do {\n              while ((pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))))) {\nLAB_00066f48:\n                local_48 = (def_file *)((int)local_48 + 4);\n                if ((def_file *)ppbVar2 == local_48) goto LAB_00067678;\n              }\n              bVar33 = link_info.version_info == (bfd_elf_version_tree *)0x0;\n              if (!bVar33) {\n                iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name);\n                bVar33 = iVar10 == 0;\n                if (!bVar33) goto LAB_00066f48;\n                pbVar13 = *(bfd_symbol **)local_48;\n              }\n              bVar32 = false;\n              pdVar24 = (def_file *)pbVar13->name;\n              iVar10 = 6;\n              pdVar16 = pdVar24;\n              pbVar30 = (byte *)0x1adaf4;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar32 = *(byte *)&pdVar16->name < *pbVar30;\n                bVar33 = *(byte *)&pdVar16->name == *pbVar30;\n                pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1);\n                pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1;\n              } while (bVar33);\n              if ((!bVar32 && !bVar33) == bVar32) goto LAB_00066f48;\n              sVar14 = strlen((char *)pdVar24);\n              pcVar11 = (char *)xmalloc(sVar14 + 7);\n              sprintf(pcVar11,"%s%s","__imp_",pdVar24);\n              iVar10 = bfd_link_hash_lookup(info->hash,pcVar11,0,0,0);\n              free(pcVar11);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (pe_details->underscored != 0) {\n                pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))\n                ;\n              }\n              iVar10 = auto_export(local_44,(def_file *)&pe_def_file->num_exports,\n                                   (char *)&pe_def_file->exports,pdVar24);\n              if (iVar10 == 0) goto LAB_00066f48;\n              is_dup = 0;\n              pdVar19 = def_file_add_export(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,\n                                            &is_dup);\n              if (is_dup != 0) goto LAB_00066f48;\n              ppbVar3 = (bfd_symbol **)((int)local_48 + 4);\n              pdVar19->flag_data = ((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1) & 1;\n              local_48 = (def_file *)ppbVar3;\n            } while (ppbVar2 != ppbVar3);\n          }" { (expression_statement "ppbVar2 = local_44->outsymbols + local_44->symcount;" (assignment_expression "ppbVar2 = local_44->outsymbols + local_44->symcount" identifier = (binary_expression "local_44->outsymbols + local_44->symcount" (field_expression "local_44->outsymbols" identifier -> field_identifier) + (field_expression "local_44->symcount" identifier -> field_identifier))) ;) (expression_statement "local_48 = (def_file *)local_44->outsymbols;" (assignment_expression "local_48 = (def_file *)local_44->outsymbols" identifier = (cast_expression "(def_file *)local_44->outsymbols" ( (type_descriptor "def_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_44->outsymbols" identifier -> field_identifier))) ;) (do_statement "do {\n              while ((pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))))) {\nLAB_00066f48:\n                local_48 = (def_file *)((int)local_48 + 4);\n                if ((def_file *)ppbVar2 == local_48) goto LAB_00067678;\n              }\n              bVar33 = link_info.version_info == (bfd_elf_version_tree *)0x0;\n              if (!bVar33) {\n                iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name);\n                bVar33 = iVar10 == 0;\n                if (!bVar33) goto LAB_00066f48;\n                pbVar13 = *(bfd_symbol **)local_48;\n              }\n              bVar32 = false;\n              pdVar24 = (def_file *)pbVar13->name;\n              iVar10 = 6;\n              pdVar16 = pdVar24;\n              pbVar30 = (byte *)0x1adaf4;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar32 = *(byte *)&pdVar16->name < *pbVar30;\n                bVar33 = *(byte *)&pdVar16->name == *pbVar30;\n                pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1);\n                pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1;\n              } while (bVar33);\n              if ((!bVar32 && !bVar33) == bVar32) goto LAB_00066f48;\n              sVar14 = strlen((char *)pdVar24);\n              pcVar11 = (char *)xmalloc(sVar14 + 7);\n              sprintf(pcVar11,"%s%s","__imp_",pdVar24);\n              iVar10 = bfd_link_hash_lookup(info->hash,pcVar11,0,0,0);\n              free(pcVar11);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (pe_details->underscored != 0) {\n                pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))\n                ;\n              }\n              iVar10 = auto_export(local_44,(def_file *)&pe_def_file->num_exports,\n                                   (char *)&pe_def_file->exports,pdVar24);\n              if (iVar10 == 0) goto LAB_00066f48;\n              is_dup = 0;\n              pdVar19 = def_file_add_export(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,\n                                            &is_dup);\n              if (is_dup != 0) goto LAB_00066f48;\n              ppbVar3 = (bfd_symbol **)((int)local_48 + 4);\n              pdVar19->flag_data = ((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1) & 1;\n              local_48 = (def_file *)ppbVar3;\n            } while (ppbVar2 != ppbVar3);" do (compound_statement "{\n              while ((pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))))) {\nLAB_00066f48:\n                local_48 = (def_file *)((int)local_48 + 4);\n                if ((def_file *)ppbVar2 == local_48) goto LAB_00067678;\n              }\n              bVar33 = link_info.version_info == (bfd_elf_version_tree *)0x0;\n              if (!bVar33) {\n                iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name);\n                bVar33 = iVar10 == 0;\n                if (!bVar33) goto LAB_00066f48;\n                pbVar13 = *(bfd_symbol **)local_48;\n              }\n              bVar32 = false;\n              pdVar24 = (def_file *)pbVar13->name;\n              iVar10 = 6;\n              pdVar16 = pdVar24;\n              pbVar30 = (byte *)0x1adaf4;\n              do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar32 = *(byte *)&pdVar16->name < *pbVar30;\n                bVar33 = *(byte *)&pdVar16->name == *pbVar30;\n                pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1);\n                pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1;\n              } while (bVar33);\n              if ((!bVar32 && !bVar33) == bVar32) goto LAB_00066f48;\n              sVar14 = strlen((char *)pdVar24);\n              pcVar11 = (char *)xmalloc(sVar14 + 7);\n              sprintf(pcVar11,"%s%s","__imp_",pdVar24);\n              iVar10 = bfd_link_hash_lookup(info->hash,pcVar11,0,0,0);\n              free(pcVar11);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (pe_details->underscored != 0) {\n                pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))\n                ;\n              }\n              iVar10 = auto_export(local_44,(def_file *)&pe_def_file->num_exports,\n                                   (char *)&pe_def_file->exports,pdVar24);\n              if (iVar10 == 0) goto LAB_00066f48;\n              is_dup = 0;\n              pdVar19 = def_file_add_export(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,\n                                            &is_dup);\n              if (is_dup != 0) goto LAB_00066f48;\n              ppbVar3 = (bfd_symbol **)((int)local_48 + 4);\n              pdVar19->flag_data = ((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1) & 1;\n              local_48 = (def_file *)ppbVar3;\n            }" { (while_statement "while ((pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))))) {\nLAB_00066f48:\n                local_48 = (def_file *)((int)local_48 + 4);\n                if ((def_file *)ppbVar2 == local_48) goto LAB_00067678;\n              }" while (parenthesized_expression "((pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0)))))" ( (parenthesized_expression "(pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))))" ( (comma_expression "pbVar13 = *(bfd_symbol **)local_48, pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0)))" (assignment_expression "pbVar13 = *(bfd_symbol **)local_48" identifier = (pointer_expression "*(bfd_symbol **)local_48" * (cast_expression "(bfd_symbol **)local_48" ( (type_descriptor "bfd_symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) , (binary_expression "pbVar13->section == pbVar12 ||\n                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0)))" (binary_expression "pbVar13->section == pbVar12" (field_expression "pbVar13->section" identifier -> field_identifier) == identifier) || (parenthesized_expression "(((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0)))" ( (parenthesized_expression "((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))" ( (binary_expression "(pbVar13->flags & 2) == 0 && (pbVar13->flags != 0)" (binary_expression "(pbVar13->flags & 2) == 0" (parenthesized_expression "(pbVar13->flags & 2)" ( (binary_expression "pbVar13->flags & 2" (field_expression "pbVar13->flags" identifier -> field_identifier) & number_literal) )) == number_literal) && (parenthesized_expression "(pbVar13->flags != 0)" ( (binary_expression "pbVar13->flags != 0" (field_expression "pbVar13->flags" identifier -> field_identifier) != number_literal) ))) )) )))) )) )) (compound_statement "{\nLAB_00066f48:\n                local_48 = (def_file *)((int)local_48 + 4);\n                if ((def_file *)ppbVar2 == local_48) goto LAB_00067678;\n              }" { (labeled_statement "LAB_00066f48:\n                local_48 = (def_file *)((int)local_48 + 4);" statement_identifier : (expression_statement "local_48 = (def_file *)((int)local_48 + 4);" (assignment_expression "local_48 = (def_file *)((int)local_48 + 4)" identifier = (cast_expression "(def_file *)((int)local_48 + 4)" ( (type_descriptor "def_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_48 + 4)" ( (binary_expression "(int)local_48 + 4" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (if_statement "if ((def_file *)ppbVar2 == local_48) goto LAB_00067678;" if (parenthesized_expression "((def_file *)ppbVar2 == local_48)" ( (binary_expression "(def_file *)ppbVar2 == local_48" (cast_expression "(def_file *)ppbVar2" ( (type_descriptor "def_file *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) (goto_statement "goto LAB_00067678;" goto statement_identifier ;)) })) (expression_statement "bVar33 = link_info.version_info == (bfd_elf_version_tree *)0x0;" (assignment_expression "bVar33 = link_info.version_info == (bfd_elf_version_tree *)0x0" identifier = (binary_expression "link_info.version_info == (bfd_elf_version_tree *)0x0" (field_expression "link_info.version_info" identifier . field_identifier) == (cast_expression "(bfd_elf_version_tree *)0x0" ( (type_descriptor "bfd_elf_version_tree *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (!bVar33) {\n                iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name);\n                bVar33 = iVar10 == 0;\n                if (!bVar33) goto LAB_00066f48;\n                pbVar13 = *(bfd_symbol **)local_48;\n              }" if (parenthesized_expression "(!bVar33)" ( (unary_expression "!bVar33" ! identifier) )) (compound_statement "{\n                iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name);\n                bVar33 = iVar10 == 0;\n                if (!bVar33) goto LAB_00066f48;\n                pbVar13 = *(bfd_symbol **)local_48;\n              }" { (expression_statement "iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name);" (assignment_expression "iVar10 = bfd_hide_sym_by_version(link_info.version_info,pbVar13->name)" identifier = (call_expression "bfd_hide_sym_by_version(link_info.version_info,pbVar13->name)" identifier (argument_list "(link_info.version_info,pbVar13->name)" ( (field_expression "link_info.version_info" identifier . field_identifier) , (field_expression "pbVar13->name" identifier -> field_identifier) )))) ;) (expression_statement "bVar33 = iVar10 == 0;" (assignment_expression "bVar33 = iVar10 == 0" identifier = (binary_expression "iVar10 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar33) goto LAB_00066f48;" if (parenthesized_expression "(!bVar33)" ( (unary_expression "!bVar33" ! identifier) )) (goto_statement "goto LAB_00066f48;" goto statement_identifier ;)) (expression_statement "pbVar13 = *(bfd_symbol **)local_48;" (assignment_expression "pbVar13 = *(bfd_symbol **)local_48" identifier = (pointer_expression "*(bfd_symbol **)local_48" * (cast_expression "(bfd_symbol **)local_48" ( (type_descriptor "bfd_symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) })) (expression_statement "bVar32 = false;" (assignment_expression "bVar32 = false" identifier = false) ;) (expression_statement "pdVar24 = (def_file *)pbVar13->name;" (assignment_expression "pdVar24 = (def_file *)pbVar13->name" identifier = (cast_expression "(def_file *)pbVar13->name" ( (type_descriptor "def_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar13->name" identifier -> field_identifier))) ;) (expression_statement "iVar10 = 6;" (assignment_expression "iVar10 = 6" identifier = number_literal) ;) (expression_statement "pdVar16 = pdVar24;" (assignment_expression "pdVar16 = pdVar24" identifier = identifier) ;) (expression_statement "pbVar30 = (byte *)0x1adaf4;" (assignment_expression "pbVar30 = (byte *)0x1adaf4" identifier = (cast_expression "(byte *)0x1adaf4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar32 = *(byte *)&pdVar16->name < *pbVar30;\n                bVar33 = *(byte *)&pdVar16->name == *pbVar30;\n                pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1);\n                pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1;\n              } while (bVar33);" do (compound_statement "{\n                if (iVar10 == 0) break;\n                iVar10 = iVar10 + -1;\n                bVar32 = *(byte *)&pdVar16->name < *pbVar30;\n                bVar33 = *(byte *)&pdVar16->name == *pbVar30;\n                pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1);\n                pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1;\n              }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar32 = *(byte *)&pdVar16->name < *pbVar30;" (assignment_expression "bVar32 = *(byte *)&pdVar16->name < *pbVar30" identifier = (binary_expression "*(byte *)&pdVar16->name < *pbVar30" (pointer_expression "*(byte *)&pdVar16->name" * (cast_expression "(byte *)&pdVar16->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pdVar16->name" & (field_expression "pdVar16->name" identifier -> field_identifier)))) < (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "bVar33 = *(byte *)&pdVar16->name == *pbVar30;" (assignment_expression "bVar33 = *(byte *)&pdVar16->name == *pbVar30" identifier = (binary_expression "*(byte *)&pdVar16->name == *pbVar30" (pointer_expression "*(byte *)&pdVar16->name" * (cast_expression "(byte *)&pdVar16->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pdVar16->name" & (field_expression "pdVar16->name" identifier -> field_identifier)))) == (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1);" (assignment_expression "pdVar16 = (def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1)" identifier = (cast_expression "(def_file *)((int)pdVar16 + (uint)bVar36 * -2 + 1)" ( (type_descriptor "def_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + (uint)bVar36 * -2 + 1)" ( (binary_expression "(int)pdVar16 + (uint)bVar36 * -2 + 1" (binary_expression "(int)pdVar16 + (uint)bVar36 * -2" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar36 * -2" (cast_expression "(uint)bVar36" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1;" (assignment_expression "pbVar30 = pbVar30 + (uint)bVar36 * -2 + 1" identifier = (binary_expression "pbVar30 + (uint)bVar36 * -2 + 1" (binary_expression "pbVar30 + (uint)bVar36 * -2" identifier + (binary_expression "(uint)bVar36 * -2" (cast_expression "(uint)bVar36" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar33)" ( identifier )) ;) (if_statement "if ((!bVar32 && !bVar33) == bVar32) goto LAB_00066f48;" if (parenthesized_expression "((!bVar32 && !bVar33) == bVar32)" ( (binary_expression "(!bVar32 && !bVar33) == bVar32" (parenthesized_expression "(!bVar32 && !bVar33)" ( (binary_expression "!bVar32 && !bVar33" (unary_expression "!bVar32" ! identifier) && (unary_expression "!bVar33" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_00066f48;" goto statement_identifier ;)) (expression_statement "sVar14 = strlen((char *)pdVar24);" (assignment_expression "sVar14 = strlen((char *)pdVar24)" identifier = (call_expression "strlen((char *)pdVar24)" identifier (argument_list "((char *)pdVar24)" ( (cast_expression "(char *)pdVar24" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pcVar11 = (char *)xmalloc(sVar14 + 7);" (assignment_expression "pcVar11 = (char *)xmalloc(sVar14 + 7)" identifier = (cast_expression "(char *)xmalloc(sVar14 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar14 + 7)" identifier (argument_list "(sVar14 + 7)" ( (binary_expression "sVar14 + 7" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar11,"%s%s","__imp_",pdVar24);" (call_expression "sprintf(pcVar11,"%s%s","__imp_",pdVar24)" identifier (argument_list "(pcVar11,"%s%s","__imp_",pdVar24)" ( identifier , (string_literal ""%s%s"" " string_content ") , (string_literal ""__imp_"" " string_content ") , identifier ))) ;) (expression_statement "iVar10 = bfd_link_hash_lookup(info->hash,pcVar11,0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(info->hash,pcVar11,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(info->hash,pcVar11,0,0,0)" identifier (argument_list "(info->hash,pcVar11,0,0,0)" ( (field_expression "info->hash" identifier -> field_identifier) , identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "free(pcVar11);" (call_expression "free(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;) (if_statement "if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x03')) goto LAB_00066f48;" if (parenthesized_expression "((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x03'))" ( (binary_expression "(iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x03')" (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x03')" ( (binary_expression "*(char *)(iVar10 + 0xc) == '\x03'" (pointer_expression "*(char *)(iVar10 + 0xc)" * (cast_expression "(char *)(iVar10 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00066f48;" goto statement_identifier ;)) (if_statement "if (pe_details->underscored != 0) {\n                pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))\n                ;\n              }" if (parenthesized_expression "(pe_details->underscored != 0)" ( (binary_expression "pe_details->underscored != 0" (field_expression "pe_details->underscored" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))\n                ;\n              }" { (expression_statement "pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))\n                ;" (assignment_expression "pdVar24 = (def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))" identifier = (cast_expression "(def_file *)((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))" ( (type_descriptor "def_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_'))" ( (binary_expression "(int)&pdVar24->name + (uint)(*(char *)&pdVar24->name == '_')" (cast_expression "(int)&pdVar24->name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pdVar24->name" & (field_expression "pdVar24->name" identifier -> field_identifier))) + (call_expression "(uint)(*(char *)&pdVar24->name == '_')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(char *)&pdVar24->name == '_')" ( (binary_expression "*(char *)&pdVar24->name == '_'" (pointer_expression "*(char *)&pdVar24->name" * (cast_expression "(char *)&pdVar24->name" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pdVar24->name" & (field_expression "pdVar24->name" identifier -> field_identifier)))) == (char_literal "'_'" ' character ')) )))) )))) ;) })) (expression_statement "iVar10 = auto_export(local_44,(def_file *)&pe_def_file->num_exports,\n                                   (char *)&pe_def_file->exports,pdVar24);" (assignment_expression "iVar10 = auto_export(local_44,(def_file *)&pe_def_file->num_exports,\n                                   (char *)&pe_def_file->exports,pdVar24)" identifier = (call_expression "auto_export(local_44,(def_file *)&pe_def_file->num_exports,\n                                   (char *)&pe_def_file->exports,pdVar24)" identifier (argument_list "(local_44,(def_file *)&pe_def_file->num_exports,\n                                   (char *)&pe_def_file->exports,pdVar24)" ( identifier , (cast_expression "(def_file *)&pe_def_file->num_exports" ( (type_descriptor "def_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pe_def_file->num_exports" & (field_expression "pe_def_file->num_exports" identifier -> field_identifier))) , (cast_expression "(char *)&pe_def_file->exports" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pe_def_file->exports" & (field_expression "pe_def_file->exports" identifier -> field_identifier))) , identifier )))) ;) (if_statement "if (iVar10 == 0) goto LAB_00066f48;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00066f48;" goto statement_identifier ;)) (expression_statement "is_dup = 0;" (assignment_expression "is_dup = 0" identifier = number_literal) ;) (expression_statement "pdVar19 = def_file_add_export(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,\n                                            &is_dup);" (assignment_expression "pdVar19 = def_file_add_export(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,\n                                            &is_dup)" identifier = (call_expression "def_file_add_export(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,\n                                            &is_dup)" identifier (argument_list "(pe_def_file,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,\n                                            &is_dup)" ( identifier , (cast_expression "(char *)pdVar24" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&is_dup" & identifier) )))) ;) (if_statement "if (is_dup != 0) goto LAB_00066f48;" if (parenthesized_expression "(is_dup != 0)" ( (binary_expression "is_dup != 0" identifier != number_literal) )) (goto_statement "goto LAB_00066f48;" goto statement_identifier ;)) (expression_statement "ppbVar3 = (bfd_symbol **)((int)local_48 + 4);" (assignment_expression "ppbVar3 = (bfd_symbol **)((int)local_48 + 4)" identifier = (cast_expression "(bfd_symbol **)((int)local_48 + 4)" ( (type_descriptor "bfd_symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_48 + 4)" ( (binary_expression "(int)local_48 + 4" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pdVar19->flag_data = ((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1) & 1;" (assignment_expression "pdVar19->flag_data = ((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1) & 1" (field_expression "pdVar19->flag_data" identifier -> field_identifier) = (binary_expression "((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1) & 1" (parenthesized_expression "((byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1)" ( (binary_expression "(byte)((*(bfd_symbol **)local_48)->flags >> 3) ^ 1" (call_expression "(byte)((*(bfd_symbol **)local_48)->flags >> 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((*(bfd_symbol **)local_48)->flags >> 3)" ( (binary_expression "(*(bfd_symbol **)local_48)->flags >> 3" (field_expression "(*(bfd_symbol **)local_48)->flags" (parenthesized_expression "(*(bfd_symbol **)local_48)" ( (pointer_expression "*(bfd_symbol **)local_48" * (cast_expression "(bfd_symbol **)local_48" ( (type_descriptor "bfd_symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) )) -> field_identifier) >> number_literal) ))) ^ number_literal) )) & number_literal)) ;) (expression_statement "local_48 = (def_file *)ppbVar3;" (assignment_expression "local_48 = (def_file *)ppbVar3" identifier = (cast_expression "(def_file *)ppbVar3" ( (type_descriptor "def_file *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(ppbVar2 != ppbVar3)" ( (binary_expression "ppbVar2 != ppbVar3" identifier != identifier) )) ;) })) (labeled_statement "LAB_00067678:\n          local_44 = (local_44->link).next;" statement_identifier : (expression_statement "local_44 = (local_44->link).next;" (assignment_expression "local_44 = (local_44->link).next" identifier = (field_expression "(local_44->link).next" (parenthesized_expression "(local_44->link)" ( (field_expression "local_44->link" identifier -> field_identifier) )) . field_identifier)) ;)) (if_statement "if (local_44 == (bfd *)0x0) goto LAB_00066fbb;" if (parenthesized_expression "(local_44 == (bfd *)0x0)" ( (binary_expression "local_44 == (bfd *)0x0" identifier == (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00066fbb;" goto statement_identifier ;)) })) (expression_statement "pcVar11 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);" (assignment_expression "pcVar11 = (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(pcVar11,local_44);" (call_expression "einfo(pcVar11,local_44)" identifier (argument_list "(pcVar11,local_44)" ( identifier , identifier ))) ;) (expression_statement "iVar10 = pe_def_file->num_exports;" (assignment_expression "iVar10 = pe_def_file->num_exports" identifier = (field_expression "pe_def_file->num_exports" identifier -> field_identifier)) ;) (expression_statement "pdVar24 = pe_def_file;" (assignment_expression "pdVar24 = pe_def_file" identifier = identifier) ;) (goto_statement "goto joined_r0x00067b8d;" goto statement_identifier ;) })) (labeled_statement "LAB_00066fbb:\n      iVar10 = pe_def_file->num_exports;" statement_identifier : (expression_statement "iVar10 = pe_def_file->num_exports;" (assignment_expression "iVar10 = pe_def_file->num_exports" identifier = (field_expression "pe_def_file->num_exports" identifier -> field_identifier)) ;)) (expression_statement "pdVar24 = pe_def_file;" (assignment_expression "pdVar24 = pe_def_file" identifier = identifier) ;) (if_statement "if (iVar10 != 0) goto LAB_00066fd0;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00066fd0;" goto statement_identifier ;)) (goto_statement "goto LAB_0006736e;" goto statement_identifier ;) })) (labeled_statement "LAB_00067375:\n    if ((bVar9 & 1) == 0) {\n      return;\n    }" statement_identifier : (if_statement "if ((bVar9 & 1) == 0) {\n      return;\n    }" if (parenthesized_expression "((bVar9 & 1) == 0)" ( (binary_expression "(bVar9 & 1) == 0" (parenthesized_expression "(bVar9 & 1)" ( (binary_expression "bVar9 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) }))) }) (else_clause "else {\n    if ((pe_dll_export_everything != 0) || (iVar10 = pe_def_file->num_exports, iVar10 == 0)) {\nLAB_00066fad:\n      if (pe_dll_exclude_all_symbols == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (pe_dll_kill_ats == 0) {\nLAB_000671fd:\n      sVar14 = pe_def_file->num_exports;\n      local_48 = pe_def_file;\n      if (pe_dll_stdcall_aliases == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar33 = false;\n      bVar32 = sVar14 == 0;\n      if (0 < (int)sVar14) {\n        local_40 = (char *)0x0;\n        local_44 = (bfd *)0x0;\n        do {\n          pbVar30 = *(byte **)((int)&local_48->exports->name + (int)local_40);\n          iVar10 = 6;\n          pbVar28 = pbVar30;\n          pbVar31 = (byte *)0x1adaf4;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar33 = *pbVar28 < *pbVar31;\n            bVar32 = *pbVar28 == *pbVar31;\n            pbVar28 = pbVar28 + (uint)bVar36 * -2 + 1;\n            pbVar31 = pbVar31 + (uint)bVar36 * -2 + 1;\n          } while (bVar32);\n          if (((!bVar33 && !bVar32) != bVar33) &&\n             (pcVar11 = strchr((char *)pbVar30,0x40), pcVar11 != (char *)0x0)) {\n            is_dup = 1;\n            pdVar16 = (def_file *)xstrdup(pbVar30 + (*pbVar30 == 0x40));\n            pcVar11 = strchr((char *)pdVar16,0x40);\n            pdVar24 = pe_def_file;\n            *pcVar11 = '\0';\n            iVar10 = auto_export((bfd *)0x0,(def_file *)&pdVar24->num_exports,\n                                 (char *)&pdVar24->exports,pdVar16);\n            if (iVar10 != 0) {\n              def_file_add_export(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup);\n            }\n            local_48 = pe_def_file;\n            if (is_dup != 0) {\n              free(pdVar16);\n              local_48 = pe_def_file;\n            }\n          }\n          local_44 = (bfd *)((int)local_44 + 1);\n          sVar14 = local_48->num_exports;\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar33 = local_44 < sVar14;\n          bVar32 = local_44 == (bfd *)sVar14;\n        } while ((int)local_44 < (int)sVar14);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar10 = 0;\n      iVar25 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar33 = false;\n      iVar25 = 0;\n      local_48 = pe_def_file;\n      if (iVar10 < 1) goto LAB_000671fd;\n      do {\n        pcVar11 = local_48->exports[iVar25].name;\n        cVar29 = *pcVar11;\n        if ((cVar29 != '?') && (pcVar15 = strchr(pcVar11,0x40), pcVar15 != (char *)0x0)) {\n          pcVar11 = (char *)xstrdup(pcVar11 + (cVar29 == '@'));\n          pcVar15 = strrchr(pcVar11,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pcVar15 = pe_def_file->exports[iVar25].name;\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            einfo(pcVar20,pcVar15);\n          }\n          else {\n            *pcVar15 = '\0';\n          }\n          local_48 = pe_def_file;\n          bVar33 = true;\n          pe_def_file->exports[iVar25].name = pcVar11;\n        }\n        sVar14 = local_48->num_exports;\n        iVar25 = iVar25 + 1;\n      } while (iVar25 < (int)sVar14);\n      if (bVar33) {\n        qsort(local_48->exports,sVar14,0x1c,pe_export_sort);\n        local_48 = pe_def_file;\n        sVar14 = pe_def_file->num_exports;\n      }\n      if (pe_dll_stdcall_aliases != 0) goto LAB_0006709d;\nLAB_00067212:\n      pdVar24 = local_48;\n      pdVar19 = local_48->exports;\n      if ((int)sVar14 < 1) goto LAB_00067c38;\n      local_48 = (def_file *)0x0;\n      iVar25 = 0;\n      pdVar26 = pdVar19;\n      do {\n        if (local_48 == (def_file *)0x0) {\nLAB_00067327:\n          if ((def_file *)iVar25 != local_48) {\n            pdVar17 = pdVar19 + iVar25;\n            pdVar17->name = pdVar26->name;\n            pdVar17->internal_name = pdVar26->internal_name;\n            pdVar17->its_name = pdVar26->its_name;\n            pdVar17->ordinal = pdVar26->ordinal;\n            pdVar17->hint = pdVar26->hint;\n            cVar29 = pdVar26->flag_constant;\n            cVar5 = pdVar26->flag_noname;\n            cVar6 = pdVar26->flag_data;\n            pdVar17->flag_private = pdVar26->flag_private;\n            pdVar17->flag_constant = cVar29;\n            pdVar17->flag_noname = cVar5;\n            pdVar17->flag_data = cVar6;\n            uVar7 = *(undefined3 *)&pdVar26->field_0x19;\n            pdVar17->flag_forward = pdVar26->flag_forward;\n            *(undefined3 *)&pdVar17->field_0x19 = uVar7;\n          }\n          iVar25 = iVar25 + 1;\n        }\n        else {\n          local_40 = pdVar26->name;\n          iVar10 = strcmp(local_40,pdVar26[-1].name);\n          if (iVar10 != 0) goto LAB_00067327;\n          pdVar17 = pdVar19 + iVar25 + -1;\n          iVar10 = pdVar17->ordinal;\n          if (((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)) || (iVar10 == iVar22)) {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              einfo(pcVar15,pcVar11);\n              local_40 = pdVar26->name;\n            }\nLAB_00067748:\n            iVar22 = pdVar26->ordinal;\n            if (iVar22 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            pdVar17->ordinal = iVar22;\n          }\n          pdVar17->flag_private = pdVar17->flag_private | pdVar26->flag_private;\n          pdVar17->flag_constant = pdVar17->flag_constant | pdVar26->flag_constant;\n          pdVar17->flag_noname = pdVar17->flag_noname | pdVar26->flag_noname;\n          pdVar17->flag_data = pdVar17->flag_data | pdVar26->flag_data;\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if (pdVar26->internal_name != (char *)0x0) {\n            free(pdVar26->internal_name);\n          }\n          pdVar24 = pe_def_file;\n          if (pdVar26->its_name != (char *)0x0) {\n            free(pdVar26->its_name);\n            pdVar24 = pe_def_file;\n          }\n        }\n        local_48 = (def_file *)((int)local_48 + 1);\n        pdVar26 = pdVar26 + 1;\n      } while ((int)local_48 < pdVar24->num_exports);\n      iVar10 = iVar25 * 8;\n      local_48 = pdVar24;\n    }\n    local_48->num_exports = iVar25;\n    exported_symbol_offsets = (bfd_vma *)xmalloc(iVar10);\n    exported_symbol_sections = (bfd_section **)xmalloc(pe_def_file->num_exports << 2);\n    pdVar24 = pe_def_file;\n    memset(exported_symbol_sections,0,pe_def_file->num_exports * 4);\n    iVar10 = pdVar24->num_exports;\n    max_ordinal = 0;\n    min_ordinal = 0x10000;\n    count_exported = 0;\n    count_exported_byname = 0;\n    count_with_ordinals = 0;\n    if (0 < iVar10) {\n      local_48 = (def_file *)0x0;\n      do {\n        pcVar11 = pdVar24->exports[(int)local_48].internal_name;\n        lang_add_gc_name(pcVar11);\n        sVar14 = strlen(pcVar11);\n        pcVar15 = (char *)xmalloc(sVar14 + 2);\n        if ((pe_details->underscored == 0) || (*pcVar11 == '@')) {\n          strcpy(pcVar15,pcVar11);\n        }\n        else {\n          *pcVar15 = '_';\n          strcpy(pcVar15 + 1,pcVar11);\n          pcVar20 = (char *)xstrdup(pcVar15);\n          lang_add_gc_name(pcVar20);\n        }\n        iVar10 = bfd_link_hash_lookup(info->hash,pcVar15,0,0,1);\n        pdVar24 = pe_def_file;\n        if (iVar10 == 0) {\n          pcVar20 = strchr(pcVar11,0x2e);\n          if (pcVar20 != (char *)0x0) {\nLAB_00067968:\n            pdVar24 = pe_def_file;\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            pdVar19->flag_forward = '\x01';\n            goto LAB_00067863;\n          }\n          pcVar20 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          pcVar20 = (char *)dcgettext(0,pcVar20,5);\n          einfo(pcVar20,pcVar11);\n          pdVar24 = pe_def_file;\n        }\n        else {\n          cVar29 = *(char *)(iVar10 + 0xc);\n          if ((cVar29 - 3U & 0xfd) == 0) {\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            if (cVar29 == '\x03') {\n              exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14);\n            }\n            else {\n              exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;\n            }\nLAB_00067863:\n            iVar10 = pdVar19->ordinal;\n            if (iVar10 != -1) {\n              if (max_ordinal < iVar10) {\n                max_ordinal = iVar10;\n              }\n              if (iVar10 < min_ordinal) {\n                min_ordinal = iVar10;\n              }\n              count_with_ordinals = count_with_ordinals + 1;\n            }\n          }\n          else {\n            pcVar20 = strchr(pcVar11,0x2e);\n            if (pcVar20 != (char *)0x0) goto LAB_00067968;\n            if (cVar29 == '\x01') {\n              pcVar20 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       );\n            einfo(pcVar20,pcVar11,cVar29,3);\n            pdVar24 = pe_def_file;\n          }\n        }\n        free(pcVar15);\n        local_48 = (def_file *)((int)local_48 + 1);\n        iVar10 = pdVar24->num_exports;\n      } while ((int)local_48 < iVar10);\n    }\njoined_r0x00067b8d:\n    if (iVar10 == 0) {\nLAB_0006736e:\n      bVar9 = *(byte *)info;\n      goto LAB_00067375;\n    }\n  }" else (compound_statement "{\n    if ((pe_dll_export_everything != 0) || (iVar10 = pe_def_file->num_exports, iVar10 == 0)) {\nLAB_00066fad:\n      if (pe_dll_exclude_all_symbols == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (pe_dll_kill_ats == 0) {\nLAB_000671fd:\n      sVar14 = pe_def_file->num_exports;\n      local_48 = pe_def_file;\n      if (pe_dll_stdcall_aliases == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar33 = false;\n      bVar32 = sVar14 == 0;\n      if (0 < (int)sVar14) {\n        local_40 = (char *)0x0;\n        local_44 = (bfd *)0x0;\n        do {\n          pbVar30 = *(byte **)((int)&local_48->exports->name + (int)local_40);\n          iVar10 = 6;\n          pbVar28 = pbVar30;\n          pbVar31 = (byte *)0x1adaf4;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar33 = *pbVar28 < *pbVar31;\n            bVar32 = *pbVar28 == *pbVar31;\n            pbVar28 = pbVar28 + (uint)bVar36 * -2 + 1;\n            pbVar31 = pbVar31 + (uint)bVar36 * -2 + 1;\n          } while (bVar32);\n          if (((!bVar33 && !bVar32) != bVar33) &&\n             (pcVar11 = strchr((char *)pbVar30,0x40), pcVar11 != (char *)0x0)) {\n            is_dup = 1;\n            pdVar16 = (def_file *)xstrdup(pbVar30 + (*pbVar30 == 0x40));\n            pcVar11 = strchr((char *)pdVar16,0x40);\n            pdVar24 = pe_def_file;\n            *pcVar11 = '\0';\n            iVar10 = auto_export((bfd *)0x0,(def_file *)&pdVar24->num_exports,\n                                 (char *)&pdVar24->exports,pdVar16);\n            if (iVar10 != 0) {\n              def_file_add_export(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup);\n            }\n            local_48 = pe_def_file;\n            if (is_dup != 0) {\n              free(pdVar16);\n              local_48 = pe_def_file;\n            }\n          }\n          local_44 = (bfd *)((int)local_44 + 1);\n          sVar14 = local_48->num_exports;\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar33 = local_44 < sVar14;\n          bVar32 = local_44 == (bfd *)sVar14;\n        } while ((int)local_44 < (int)sVar14);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar10 = 0;\n      iVar25 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar33 = false;\n      iVar25 = 0;\n      local_48 = pe_def_file;\n      if (iVar10 < 1) goto LAB_000671fd;\n      do {\n        pcVar11 = local_48->exports[iVar25].name;\n        cVar29 = *pcVar11;\n        if ((cVar29 != '?') && (pcVar15 = strchr(pcVar11,0x40), pcVar15 != (char *)0x0)) {\n          pcVar11 = (char *)xstrdup(pcVar11 + (cVar29 == '@'));\n          pcVar15 = strrchr(pcVar11,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pcVar15 = pe_def_file->exports[iVar25].name;\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            einfo(pcVar20,pcVar15);\n          }\n          else {\n            *pcVar15 = '\0';\n          }\n          local_48 = pe_def_file;\n          bVar33 = true;\n          pe_def_file->exports[iVar25].name = pcVar11;\n        }\n        sVar14 = local_48->num_exports;\n        iVar25 = iVar25 + 1;\n      } while (iVar25 < (int)sVar14);\n      if (bVar33) {\n        qsort(local_48->exports,sVar14,0x1c,pe_export_sort);\n        local_48 = pe_def_file;\n        sVar14 = pe_def_file->num_exports;\n      }\n      if (pe_dll_stdcall_aliases != 0) goto LAB_0006709d;\nLAB_00067212:\n      pdVar24 = local_48;\n      pdVar19 = local_48->exports;\n      if ((int)sVar14 < 1) goto LAB_00067c38;\n      local_48 = (def_file *)0x0;\n      iVar25 = 0;\n      pdVar26 = pdVar19;\n      do {\n        if (local_48 == (def_file *)0x0) {\nLAB_00067327:\n          if ((def_file *)iVar25 != local_48) {\n            pdVar17 = pdVar19 + iVar25;\n            pdVar17->name = pdVar26->name;\n            pdVar17->internal_name = pdVar26->internal_name;\n            pdVar17->its_name = pdVar26->its_name;\n            pdVar17->ordinal = pdVar26->ordinal;\n            pdVar17->hint = pdVar26->hint;\n            cVar29 = pdVar26->flag_constant;\n            cVar5 = pdVar26->flag_noname;\n            cVar6 = pdVar26->flag_data;\n            pdVar17->flag_private = pdVar26->flag_private;\n            pdVar17->flag_constant = cVar29;\n            pdVar17->flag_noname = cVar5;\n            pdVar17->flag_data = cVar6;\n            uVar7 = *(undefined3 *)&pdVar26->field_0x19;\n            pdVar17->flag_forward = pdVar26->flag_forward;\n            *(undefined3 *)&pdVar17->field_0x19 = uVar7;\n          }\n          iVar25 = iVar25 + 1;\n        }\n        else {\n          local_40 = pdVar26->name;\n          iVar10 = strcmp(local_40,pdVar26[-1].name);\n          if (iVar10 != 0) goto LAB_00067327;\n          pdVar17 = pdVar19 + iVar25 + -1;\n          iVar10 = pdVar17->ordinal;\n          if (((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)) || (iVar10 == iVar22)) {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              einfo(pcVar15,pcVar11);\n              local_40 = pdVar26->name;\n            }\nLAB_00067748:\n            iVar22 = pdVar26->ordinal;\n            if (iVar22 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            pdVar17->ordinal = iVar22;\n          }\n          pdVar17->flag_private = pdVar17->flag_private | pdVar26->flag_private;\n          pdVar17->flag_constant = pdVar17->flag_constant | pdVar26->flag_constant;\n          pdVar17->flag_noname = pdVar17->flag_noname | pdVar26->flag_noname;\n          pdVar17->flag_data = pdVar17->flag_data | pdVar26->flag_data;\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if (pdVar26->internal_name != (char *)0x0) {\n            free(pdVar26->internal_name);\n          }\n          pdVar24 = pe_def_file;\n          if (pdVar26->its_name != (char *)0x0) {\n            free(pdVar26->its_name);\n            pdVar24 = pe_def_file;\n          }\n        }\n        local_48 = (def_file *)((int)local_48 + 1);\n        pdVar26 = pdVar26 + 1;\n      } while ((int)local_48 < pdVar24->num_exports);\n      iVar10 = iVar25 * 8;\n      local_48 = pdVar24;\n    }\n    local_48->num_exports = iVar25;\n    exported_symbol_offsets = (bfd_vma *)xmalloc(iVar10);\n    exported_symbol_sections = (bfd_section **)xmalloc(pe_def_file->num_exports << 2);\n    pdVar24 = pe_def_file;\n    memset(exported_symbol_sections,0,pe_def_file->num_exports * 4);\n    iVar10 = pdVar24->num_exports;\n    max_ordinal = 0;\n    min_ordinal = 0x10000;\n    count_exported = 0;\n    count_exported_byname = 0;\n    count_with_ordinals = 0;\n    if (0 < iVar10) {\n      local_48 = (def_file *)0x0;\n      do {\n        pcVar11 = pdVar24->exports[(int)local_48].internal_name;\n        lang_add_gc_name(pcVar11);\n        sVar14 = strlen(pcVar11);\n        pcVar15 = (char *)xmalloc(sVar14 + 2);\n        if ((pe_details->underscored == 0) || (*pcVar11 == '@')) {\n          strcpy(pcVar15,pcVar11);\n        }\n        else {\n          *pcVar15 = '_';\n          strcpy(pcVar15 + 1,pcVar11);\n          pcVar20 = (char *)xstrdup(pcVar15);\n          lang_add_gc_name(pcVar20);\n        }\n        iVar10 = bfd_link_hash_lookup(info->hash,pcVar15,0,0,1);\n        pdVar24 = pe_def_file;\n        if (iVar10 == 0) {\n          pcVar20 = strchr(pcVar11,0x2e);\n          if (pcVar20 != (char *)0x0) {\nLAB_00067968:\n            pdVar24 = pe_def_file;\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            pdVar19->flag_forward = '\x01';\n            goto LAB_00067863;\n          }\n          pcVar20 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          pcVar20 = (char *)dcgettext(0,pcVar20,5);\n          einfo(pcVar20,pcVar11);\n          pdVar24 = pe_def_file;\n        }\n        else {\n          cVar29 = *(char *)(iVar10 + 0xc);\n          if ((cVar29 - 3U & 0xfd) == 0) {\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            if (cVar29 == '\x03') {\n              exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14);\n            }\n            else {\n              exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;\n            }\nLAB_00067863:\n            iVar10 = pdVar19->ordinal;\n            if (iVar10 != -1) {\n              if (max_ordinal < iVar10) {\n                max_ordinal = iVar10;\n              }\n              if (iVar10 < min_ordinal) {\n                min_ordinal = iVar10;\n              }\n              count_with_ordinals = count_with_ordinals + 1;\n            }\n          }\n          else {\n            pcVar20 = strchr(pcVar11,0x2e);\n            if (pcVar20 != (char *)0x0) goto LAB_00067968;\n            if (cVar29 == '\x01') {\n              pcVar20 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       );\n            einfo(pcVar20,pcVar11,cVar29,3);\n            pdVar24 = pe_def_file;\n          }\n        }\n        free(pcVar15);\n        local_48 = (def_file *)((int)local_48 + 1);\n        iVar10 = pdVar24->num_exports;\n      } while ((int)local_48 < iVar10);\n    }\njoined_r0x00067b8d:\n    if (iVar10 == 0) {\nLAB_0006736e:\n      bVar9 = *(byte *)info;\n      goto LAB_00067375;\n    }\n  }" { (if_statement "if ((pe_dll_export_everything != 0) || (iVar10 = pe_def_file->num_exports, iVar10 == 0)) {\nLAB_00066fad:\n      if (pe_dll_exclude_all_symbols == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }" if (parenthesized_expression "((pe_dll_export_everything != 0) || (iVar10 = pe_def_file->num_exports, iVar10 == 0))" ( (binary_expression "(pe_dll_export_everything != 0) || (iVar10 = pe_def_file->num_exports, iVar10 == 0)" (parenthesized_expression "(pe_dll_export_everything != 0)" ( (binary_expression "pe_dll_export_everything != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar10 = pe_def_file->num_exports, iVar10 == 0)" ( (comma_expression "iVar10 = pe_def_file->num_exports, iVar10 == 0" (assignment_expression "iVar10 = pe_def_file->num_exports" identifier = (field_expression "pe_def_file->num_exports" identifier -> field_identifier)) , (binary_expression "iVar10 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_00066fad:\n      if (pe_dll_exclude_all_symbols == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }" { (labeled_statement "LAB_00066fad:\n      if (pe_dll_exclude_all_symbols == 0) goto LAB_00066df0;" statement_identifier : (if_statement "if (pe_dll_exclude_all_symbols == 0) goto LAB_00066df0;" if (parenthesized_expression "(pe_dll_exclude_all_symbols == 0)" ( (binary_expression "pe_dll_exclude_all_symbols == 0" identifier == number_literal) )) (goto_statement "goto LAB_00066df0;" goto statement_identifier ;))) (goto_statement "goto LAB_00066fbb;" goto statement_identifier ;) })) (labeled_statement "LAB_00066fd0:\n    if (pe_dll_kill_ats == 0) {\nLAB_000671fd:\n      sVar14 = pe_def_file->num_exports;\n      local_48 = pe_def_file;\n      if (pe_dll_stdcall_aliases == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar33 = false;\n      bVar32 = sVar14 == 0;\n      if (0 < (int)sVar14) {\n        local_40 = (char *)0x0;\n        local_44 = (bfd *)0x0;\n        do {\n          pbVar30 = *(byte **)((int)&local_48->exports->name + (int)local_40);\n          iVar10 = 6;\n          pbVar28 = pbVar30;\n          pbVar31 = (byte *)0x1adaf4;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar33 = *pbVar28 < *pbVar31;\n            bVar32 = *pbVar28 == *pbVar31;\n            pbVar28 = pbVar28 + (uint)bVar36 * -2 + 1;\n            pbVar31 = pbVar31 + (uint)bVar36 * -2 + 1;\n          } while (bVar32);\n          if (((!bVar33 && !bVar32) != bVar33) &&\n             (pcVar11 = strchr((char *)pbVar30,0x40), pcVar11 != (char *)0x0)) {\n            is_dup = 1;\n            pdVar16 = (def_file *)xstrdup(pbVar30 + (*pbVar30 == 0x40));\n            pcVar11 = strchr((char *)pdVar16,0x40);\n            pdVar24 = pe_def_file;\n            *pcVar11 = '\0';\n            iVar10 = auto_export((bfd *)0x0,(def_file *)&pdVar24->num_exports,\n                                 (char *)&pdVar24->exports,pdVar16);\n            if (iVar10 != 0) {\n              def_file_add_export(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup);\n            }\n            local_48 = pe_def_file;\n            if (is_dup != 0) {\n              free(pdVar16);\n              local_48 = pe_def_file;\n            }\n          }\n          local_44 = (bfd *)((int)local_44 + 1);\n          sVar14 = local_48->num_exports;\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar33 = local_44 < sVar14;\n          bVar32 = local_44 == (bfd *)sVar14;\n        } while ((int)local_44 < (int)sVar14);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar10 = 0;\n      iVar25 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar33 = false;\n      iVar25 = 0;\n      local_48 = pe_def_file;\n      if (iVar10 < 1) goto LAB_000671fd;\n      do {\n        pcVar11 = local_48->exports[iVar25].name;\n        cVar29 = *pcVar11;\n        if ((cVar29 != '?') && (pcVar15 = strchr(pcVar11,0x40), pcVar15 != (char *)0x0)) {\n          pcVar11 = (char *)xstrdup(pcVar11 + (cVar29 == '@'));\n          pcVar15 = strrchr(pcVar11,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pcVar15 = pe_def_file->exports[iVar25].name;\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            einfo(pcVar20,pcVar15);\n          }\n          else {\n            *pcVar15 = '\0';\n          }\n          local_48 = pe_def_file;\n          bVar33 = true;\n          pe_def_file->exports[iVar25].name = pcVar11;\n        }\n        sVar14 = local_48->num_exports;\n        iVar25 = iVar25 + 1;\n      } while (iVar25 < (int)sVar14);\n      if (bVar33) {\n        qsort(local_48->exports,sVar14,0x1c,pe_export_sort);\n        local_48 = pe_def_file;\n        sVar14 = pe_def_file->num_exports;\n      }\n      if (pe_dll_stdcall_aliases != 0) goto LAB_0006709d;\nLAB_00067212:\n      pdVar24 = local_48;\n      pdVar19 = local_48->exports;\n      if ((int)sVar14 < 1) goto LAB_00067c38;\n      local_48 = (def_file *)0x0;\n      iVar25 = 0;\n      pdVar26 = pdVar19;\n      do {\n        if (local_48 == (def_file *)0x0) {\nLAB_00067327:\n          if ((def_file *)iVar25 != local_48) {\n            pdVar17 = pdVar19 + iVar25;\n            pdVar17->name = pdVar26->name;\n            pdVar17->internal_name = pdVar26->internal_name;\n            pdVar17->its_name = pdVar26->its_name;\n            pdVar17->ordinal = pdVar26->ordinal;\n            pdVar17->hint = pdVar26->hint;\n            cVar29 = pdVar26->flag_constant;\n            cVar5 = pdVar26->flag_noname;\n            cVar6 = pdVar26->flag_data;\n            pdVar17->flag_private = pdVar26->flag_private;\n            pdVar17->flag_constant = cVar29;\n            pdVar17->flag_noname = cVar5;\n            pdVar17->flag_data = cVar6;\n            uVar7 = *(undefined3 *)&pdVar26->field_0x19;\n            pdVar17->flag_forward = pdVar26->flag_forward;\n            *(undefined3 *)&pdVar17->field_0x19 = uVar7;\n          }\n          iVar25 = iVar25 + 1;\n        }\n        else {\n          local_40 = pdVar26->name;\n          iVar10 = strcmp(local_40,pdVar26[-1].name);\n          if (iVar10 != 0) goto LAB_00067327;\n          pdVar17 = pdVar19 + iVar25 + -1;\n          iVar10 = pdVar17->ordinal;\n          if (((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)) || (iVar10 == iVar22)) {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              einfo(pcVar15,pcVar11);\n              local_40 = pdVar26->name;\n            }\nLAB_00067748:\n            iVar22 = pdVar26->ordinal;\n            if (iVar22 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            pdVar17->ordinal = iVar22;\n          }\n          pdVar17->flag_private = pdVar17->flag_private | pdVar26->flag_private;\n          pdVar17->flag_constant = pdVar17->flag_constant | pdVar26->flag_constant;\n          pdVar17->flag_noname = pdVar17->flag_noname | pdVar26->flag_noname;\n          pdVar17->flag_data = pdVar17->flag_data | pdVar26->flag_data;\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if (pdVar26->internal_name != (char *)0x0) {\n            free(pdVar26->internal_name);\n          }\n          pdVar24 = pe_def_file;\n          if (pdVar26->its_name != (char *)0x0) {\n            free(pdVar26->its_name);\n            pdVar24 = pe_def_file;\n          }\n        }\n        local_48 = (def_file *)((int)local_48 + 1);\n        pdVar26 = pdVar26 + 1;\n      } while ((int)local_48 < pdVar24->num_exports);\n      iVar10 = iVar25 * 8;\n      local_48 = pdVar24;\n    }" statement_identifier : (if_statement "if (pe_dll_kill_ats == 0) {\nLAB_000671fd:\n      sVar14 = pe_def_file->num_exports;\n      local_48 = pe_def_file;\n      if (pe_dll_stdcall_aliases == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar33 = false;\n      bVar32 = sVar14 == 0;\n      if (0 < (int)sVar14) {\n        local_40 = (char *)0x0;\n        local_44 = (bfd *)0x0;\n        do {\n          pbVar30 = *(byte **)((int)&local_48->exports->name + (int)local_40);\n          iVar10 = 6;\n          pbVar28 = pbVar30;\n          pbVar31 = (byte *)0x1adaf4;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar33 = *pbVar28 < *pbVar31;\n            bVar32 = *pbVar28 == *pbVar31;\n            pbVar28 = pbVar28 + (uint)bVar36 * -2 + 1;\n            pbVar31 = pbVar31 + (uint)bVar36 * -2 + 1;\n          } while (bVar32);\n          if (((!bVar33 && !bVar32) != bVar33) &&\n             (pcVar11 = strchr((char *)pbVar30,0x40), pcVar11 != (char *)0x0)) {\n            is_dup = 1;\n            pdVar16 = (def_file *)xstrdup(pbVar30 + (*pbVar30 == 0x40));\n            pcVar11 = strchr((char *)pdVar16,0x40);\n            pdVar24 = pe_def_file;\n            *pcVar11 = '\0';\n            iVar10 = auto_export((bfd *)0x0,(def_file *)&pdVar24->num_exports,\n                                 (char *)&pdVar24->exports,pdVar16);\n            if (iVar10 != 0) {\n              def_file_add_export(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup);\n            }\n            local_48 = pe_def_file;\n            if (is_dup != 0) {\n              free(pdVar16);\n              local_48 = pe_def_file;\n            }\n          }\n          local_44 = (bfd *)((int)local_44 + 1);\n          sVar14 = local_48->num_exports;\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar33 = local_44 < sVar14;\n          bVar32 = local_44 == (bfd *)sVar14;\n        } while ((int)local_44 < (int)sVar14);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar10 = 0;\n      iVar25 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar33 = false;\n      iVar25 = 0;\n      local_48 = pe_def_file;\n      if (iVar10 < 1) goto LAB_000671fd;\n      do {\n        pcVar11 = local_48->exports[iVar25].name;\n        cVar29 = *pcVar11;\n        if ((cVar29 != '?') && (pcVar15 = strchr(pcVar11,0x40), pcVar15 != (char *)0x0)) {\n          pcVar11 = (char *)xstrdup(pcVar11 + (cVar29 == '@'));\n          pcVar15 = strrchr(pcVar11,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pcVar15 = pe_def_file->exports[iVar25].name;\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            einfo(pcVar20,pcVar15);\n          }\n          else {\n            *pcVar15 = '\0';\n          }\n          local_48 = pe_def_file;\n          bVar33 = true;\n          pe_def_file->exports[iVar25].name = pcVar11;\n        }\n        sVar14 = local_48->num_exports;\n        iVar25 = iVar25 + 1;\n      } while (iVar25 < (int)sVar14);\n      if (bVar33) {\n        qsort(local_48->exports,sVar14,0x1c,pe_export_sort);\n        local_48 = pe_def_file;\n        sVar14 = pe_def_file->num_exports;\n      }\n      if (pe_dll_stdcall_aliases != 0) goto LAB_0006709d;\nLAB_00067212:\n      pdVar24 = local_48;\n      pdVar19 = local_48->exports;\n      if ((int)sVar14 < 1) goto LAB_00067c38;\n      local_48 = (def_file *)0x0;\n      iVar25 = 0;\n      pdVar26 = pdVar19;\n      do {\n        if (local_48 == (def_file *)0x0) {\nLAB_00067327:\n          if ((def_file *)iVar25 != local_48) {\n            pdVar17 = pdVar19 + iVar25;\n            pdVar17->name = pdVar26->name;\n            pdVar17->internal_name = pdVar26->internal_name;\n            pdVar17->its_name = pdVar26->its_name;\n            pdVar17->ordinal = pdVar26->ordinal;\n            pdVar17->hint = pdVar26->hint;\n            cVar29 = pdVar26->flag_constant;\n            cVar5 = pdVar26->flag_noname;\n            cVar6 = pdVar26->flag_data;\n            pdVar17->flag_private = pdVar26->flag_private;\n            pdVar17->flag_constant = cVar29;\n            pdVar17->flag_noname = cVar5;\n            pdVar17->flag_data = cVar6;\n            uVar7 = *(undefined3 *)&pdVar26->field_0x19;\n            pdVar17->flag_forward = pdVar26->flag_forward;\n            *(undefined3 *)&pdVar17->field_0x19 = uVar7;\n          }\n          iVar25 = iVar25 + 1;\n        }\n        else {\n          local_40 = pdVar26->name;\n          iVar10 = strcmp(local_40,pdVar26[-1].name);\n          if (iVar10 != 0) goto LAB_00067327;\n          pdVar17 = pdVar19 + iVar25 + -1;\n          iVar10 = pdVar17->ordinal;\n          if (((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)) || (iVar10 == iVar22)) {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              einfo(pcVar15,pcVar11);\n              local_40 = pdVar26->name;\n            }\nLAB_00067748:\n            iVar22 = pdVar26->ordinal;\n            if (iVar22 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            pdVar17->ordinal = iVar22;\n          }\n          pdVar17->flag_private = pdVar17->flag_private | pdVar26->flag_private;\n          pdVar17->flag_constant = pdVar17->flag_constant | pdVar26->flag_constant;\n          pdVar17->flag_noname = pdVar17->flag_noname | pdVar26->flag_noname;\n          pdVar17->flag_data = pdVar17->flag_data | pdVar26->flag_data;\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if (pdVar26->internal_name != (char *)0x0) {\n            free(pdVar26->internal_name);\n          }\n          pdVar24 = pe_def_file;\n          if (pdVar26->its_name != (char *)0x0) {\n            free(pdVar26->its_name);\n            pdVar24 = pe_def_file;\n          }\n        }\n        local_48 = (def_file *)((int)local_48 + 1);\n        pdVar26 = pdVar26 + 1;\n      } while ((int)local_48 < pdVar24->num_exports);\n      iVar10 = iVar25 * 8;\n      local_48 = pdVar24;\n    }" if (parenthesized_expression "(pe_dll_kill_ats == 0)" ( (binary_expression "pe_dll_kill_ats == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000671fd:\n      sVar14 = pe_def_file->num_exports;\n      local_48 = pe_def_file;\n      if (pe_dll_stdcall_aliases == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar33 = false;\n      bVar32 = sVar14 == 0;\n      if (0 < (int)sVar14) {\n        local_40 = (char *)0x0;\n        local_44 = (bfd *)0x0;\n        do {\n          pbVar30 = *(byte **)((int)&local_48->exports->name + (int)local_40);\n          iVar10 = 6;\n          pbVar28 = pbVar30;\n          pbVar31 = (byte *)0x1adaf4;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar33 = *pbVar28 < *pbVar31;\n            bVar32 = *pbVar28 == *pbVar31;\n            pbVar28 = pbVar28 + (uint)bVar36 * -2 + 1;\n            pbVar31 = pbVar31 + (uint)bVar36 * -2 + 1;\n          } while (bVar32);\n          if (((!bVar33 && !bVar32) != bVar33) &&\n             (pcVar11 = strchr((char *)pbVar30,0x40), pcVar11 != (char *)0x0)) {\n            is_dup = 1;\n            pdVar16 = (def_file *)xstrdup(pbVar30 + (*pbVar30 == 0x40));\n            pcVar11 = strchr((char *)pdVar16,0x40);\n            pdVar24 = pe_def_file;\n            *pcVar11 = '\0';\n            iVar10 = auto_export((bfd *)0x0,(def_file *)&pdVar24->num_exports,\n                                 (char *)&pdVar24->exports,pdVar16);\n            if (iVar10 != 0) {\n              def_file_add_export(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup);\n            }\n            local_48 = pe_def_file;\n            if (is_dup != 0) {\n              free(pdVar16);\n              local_48 = pe_def_file;\n            }\n          }\n          local_44 = (bfd *)((int)local_44 + 1);\n          sVar14 = local_48->num_exports;\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar33 = local_44 < sVar14;\n          bVar32 = local_44 == (bfd *)sVar14;\n        } while ((int)local_44 < (int)sVar14);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar10 = 0;\n      iVar25 = 0;\n    }" { (labeled_statement "LAB_000671fd:\n      sVar14 = pe_def_file->num_exports;" statement_identifier : (expression_statement "sVar14 = pe_def_file->num_exports;" (assignment_expression "sVar14 = pe_def_file->num_exports" identifier = (field_expression "pe_def_file->num_exports" identifier -> field_identifier)) ;)) (expression_statement "local_48 = pe_def_file;" (assignment_expression "local_48 = pe_def_file" identifier = identifier) ;) (if_statement "if (pe_dll_stdcall_aliases == 0) goto LAB_00067212;" if (parenthesized_expression "(pe_dll_stdcall_aliases == 0)" ( (binary_expression "pe_dll_stdcall_aliases == 0" identifier == number_literal) )) (goto_statement "goto LAB_00067212;" goto statement_identifier ;)) (labeled_statement "LAB_0006709d:\n      bVar33 = false;" statement_identifier : (expression_statement "bVar33 = false;" (assignment_expression "bVar33 = false" identifier = false) ;)) (expression_statement "bVar32 = sVar14 == 0;" (assignment_expression "bVar32 = sVar14 == 0" identifier = (binary_expression "sVar14 == 0" identifier == number_literal)) ;) (if_statement "if (0 < (int)sVar14) {\n        local_40 = (char *)0x0;\n        local_44 = (bfd *)0x0;\n        do {\n          pbVar30 = *(byte **)((int)&local_48->exports->name + (int)local_40);\n          iVar10 = 6;\n          pbVar28 = pbVar30;\n          pbVar31 = (byte *)0x1adaf4;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar33 = *pbVar28 < *pbVar31;\n            bVar32 = *pbVar28 == *pbVar31;\n            pbVar28 = pbVar28 + (uint)bVar36 * -2 + 1;\n            pbVar31 = pbVar31 + (uint)bVar36 * -2 + 1;\n          } while (bVar32);\n          if (((!bVar33 && !bVar32) != bVar33) &&\n             (pcVar11 = strchr((char *)pbVar30,0x40), pcVar11 != (char *)0x0)) {\n            is_dup = 1;\n            pdVar16 = (def_file *)xstrdup(pbVar30 + (*pbVar30 == 0x40));\n            pcVar11 = strchr((char *)pdVar16,0x40);\n            pdVar24 = pe_def_file;\n            *pcVar11 = '\0';\n            iVar10 = auto_export((bfd *)0x0,(def_file *)&pdVar24->num_exports,\n                                 (char *)&pdVar24->exports,pdVar16);\n            if (iVar10 != 0) {\n              def_file_add_export(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup);\n            }\n            local_48 = pe_def_file;\n            if (is_dup != 0) {\n              free(pdVar16);\n              local_48 = pe_def_file;\n            }\n          }\n          local_44 = (bfd *)((int)local_44 + 1);\n          sVar14 = local_48->num_exports;\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar33 = local_44 < sVar14;\n          bVar32 = local_44 == (bfd *)sVar14;\n        } while ((int)local_44 < (int)sVar14);\n        goto LAB_00067212;\n      }" if (parenthesized_expression "(0 < (int)sVar14)" ( (binary_expression "0 < (int)sVar14" number_literal < (cast_expression "(int)sVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        local_40 = (char *)0x0;\n        local_44 = (bfd *)0x0;\n        do {\n          pbVar30 = *(byte **)((int)&local_48->exports->name + (int)local_40);\n          iVar10 = 6;\n          pbVar28 = pbVar30;\n          pbVar31 = (byte *)0x1adaf4;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar33 = *pbVar28 < *pbVar31;\n            bVar32 = *pbVar28 == *pbVar31;\n            pbVar28 = pbVar28 + (uint)bVar36 * -2 + 1;\n            pbVar31 = pbVar31 + (uint)bVar36 * -2 + 1;\n          } while (bVar32);\n          if (((!bVar33 && !bVar32) != bVar33) &&\n             (pcVar11 = strchr((char *)pbVar30,0x40), pcVar11 != (char *)0x0)) {\n            is_dup = 1;\n            pdVar16 = (def_file *)xstrdup(pbVar30 + (*pbVar30 == 0x40));\n            pcVar11 = strchr((char *)pdVar16,0x40);\n            pdVar24 = pe_def_file;\n            *pcVar11 = '\0';\n            iVar10 = auto_export((bfd *)0x0,(def_file *)&pdVar24->num_exports,\n                                 (char *)&pdVar24->exports,pdVar16);\n            if (iVar10 != 0) {\n              def_file_add_export(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup);\n            }\n            local_48 = pe_def_file;\n            if (is_dup != 0) {\n              free(pdVar16);\n              local_48 = pe_def_file;\n            }\n          }\n          local_44 = (bfd *)((int)local_44 + 1);\n          sVar14 = local_48->num_exports;\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar33 = local_44 < sVar14;\n          bVar32 = local_44 == (bfd *)sVar14;\n        } while ((int)local_44 < (int)sVar14);\n        goto LAB_00067212;\n      }" { (expression_statement "local_40 = (char *)0x0;" (assignment_expression "local_40 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_44 = (bfd *)0x0;" (assignment_expression "local_44 = (bfd *)0x0" identifier = (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          pbVar30 = *(byte **)((int)&local_48->exports->name + (int)local_40);\n          iVar10 = 6;\n          pbVar28 = pbVar30;\n          pbVar31 = (byte *)0x1adaf4;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar33 = *pbVar28 < *pbVar31;\n            bVar32 = *pbVar28 == *pbVar31;\n            pbVar28 = pbVar28 + (uint)bVar36 * -2 + 1;\n            pbVar31 = pbVar31 + (uint)bVar36 * -2 + 1;\n          } while (bVar32);\n          if (((!bVar33 && !bVar32) != bVar33) &&\n             (pcVar11 = strchr((char *)pbVar30,0x40), pcVar11 != (char *)0x0)) {\n            is_dup = 1;\n            pdVar16 = (def_file *)xstrdup(pbVar30 + (*pbVar30 == 0x40));\n            pcVar11 = strchr((char *)pdVar16,0x40);\n            pdVar24 = pe_def_file;\n            *pcVar11 = '\0';\n            iVar10 = auto_export((bfd *)0x0,(def_file *)&pdVar24->num_exports,\n                                 (char *)&pdVar24->exports,pdVar16);\n            if (iVar10 != 0) {\n              def_file_add_export(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup);\n            }\n            local_48 = pe_def_file;\n            if (is_dup != 0) {\n              free(pdVar16);\n              local_48 = pe_def_file;\n            }\n          }\n          local_44 = (bfd *)((int)local_44 + 1);\n          sVar14 = local_48->num_exports;\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar33 = local_44 < sVar14;\n          bVar32 = local_44 == (bfd *)sVar14;\n        } while ((int)local_44 < (int)sVar14);" do (compound_statement "{\n          pbVar30 = *(byte **)((int)&local_48->exports->name + (int)local_40);\n          iVar10 = 6;\n          pbVar28 = pbVar30;\n          pbVar31 = (byte *)0x1adaf4;\n          do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar33 = *pbVar28 < *pbVar31;\n            bVar32 = *pbVar28 == *pbVar31;\n            pbVar28 = pbVar28 + (uint)bVar36 * -2 + 1;\n            pbVar31 = pbVar31 + (uint)bVar36 * -2 + 1;\n          } while (bVar32);\n          if (((!bVar33 && !bVar32) != bVar33) &&\n             (pcVar11 = strchr((char *)pbVar30,0x40), pcVar11 != (char *)0x0)) {\n            is_dup = 1;\n            pdVar16 = (def_file *)xstrdup(pbVar30 + (*pbVar30 == 0x40));\n            pcVar11 = strchr((char *)pdVar16,0x40);\n            pdVar24 = pe_def_file;\n            *pcVar11 = '\0';\n            iVar10 = auto_export((bfd *)0x0,(def_file *)&pdVar24->num_exports,\n                                 (char *)&pdVar24->exports,pdVar16);\n            if (iVar10 != 0) {\n              def_file_add_export(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup);\n            }\n            local_48 = pe_def_file;\n            if (is_dup != 0) {\n              free(pdVar16);\n              local_48 = pe_def_file;\n            }\n          }\n          local_44 = (bfd *)((int)local_44 + 1);\n          sVar14 = local_48->num_exports;\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar33 = local_44 < sVar14;\n          bVar32 = local_44 == (bfd *)sVar14;\n        }" { (expression_statement "pbVar30 = *(byte **)((int)&local_48->exports->name + (int)local_40);" (assignment_expression "pbVar30 = *(byte **)((int)&local_48->exports->name + (int)local_40)" identifier = (pointer_expression "*(byte **)((int)&local_48->exports->name + (int)local_40)" * (cast_expression "(byte **)((int)&local_48->exports->name + (int)local_40)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&local_48->exports->name + (int)local_40)" ( (binary_expression "(int)&local_48->exports->name + (int)local_40" (cast_expression "(int)&local_48->exports->name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_48->exports->name" & (field_expression "local_48->exports->name" (field_expression "local_48->exports" identifier -> field_identifier) -> field_identifier))) + (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "iVar10 = 6;" (assignment_expression "iVar10 = 6" identifier = number_literal) ;) (expression_statement "pbVar28 = pbVar30;" (assignment_expression "pbVar28 = pbVar30" identifier = identifier) ;) (expression_statement "pbVar31 = (byte *)0x1adaf4;" (assignment_expression "pbVar31 = (byte *)0x1adaf4" identifier = (cast_expression "(byte *)0x1adaf4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar33 = *pbVar28 < *pbVar31;\n            bVar32 = *pbVar28 == *pbVar31;\n            pbVar28 = pbVar28 + (uint)bVar36 * -2 + 1;\n            pbVar31 = pbVar31 + (uint)bVar36 * -2 + 1;\n          } while (bVar32);" do (compound_statement "{\n            if (iVar10 == 0) break;\n            iVar10 = iVar10 + -1;\n            bVar33 = *pbVar28 < *pbVar31;\n            bVar32 = *pbVar28 == *pbVar31;\n            pbVar28 = pbVar28 + (uint)bVar36 * -2 + 1;\n            pbVar31 = pbVar31 + (uint)bVar36 * -2 + 1;\n          }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar33 = *pbVar28 < *pbVar31;" (assignment_expression "bVar33 = *pbVar28 < *pbVar31" identifier = (binary_expression "*pbVar28 < *pbVar31" (pointer_expression "*pbVar28" * identifier) < (pointer_expression "*pbVar31" * identifier))) ;) (expression_statement "bVar32 = *pbVar28 == *pbVar31;" (assignment_expression "bVar32 = *pbVar28 == *pbVar31" identifier = (binary_expression "*pbVar28 == *pbVar31" (pointer_expression "*pbVar28" * identifier) == (pointer_expression "*pbVar31" * identifier))) ;) (expression_statement "pbVar28 = pbVar28 + (uint)bVar36 * -2 + 1;" (assignment_expression "pbVar28 = pbVar28 + (uint)bVar36 * -2 + 1" identifier = (binary_expression "pbVar28 + (uint)bVar36 * -2 + 1" (binary_expression "pbVar28 + (uint)bVar36 * -2" identifier + (binary_expression "(uint)bVar36 * -2" (cast_expression "(uint)bVar36" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar31 = pbVar31 + (uint)bVar36 * -2 + 1;" (assignment_expression "pbVar31 = pbVar31 + (uint)bVar36 * -2 + 1" identifier = (binary_expression "pbVar31 + (uint)bVar36 * -2 + 1" (binary_expression "pbVar31 + (uint)bVar36 * -2" identifier + (binary_expression "(uint)bVar36 * -2" (cast_expression "(uint)bVar36" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar32)" ( identifier )) ;) (if_statement "if (((!bVar33 && !bVar32) != bVar33) &&\n             (pcVar11 = strchr((char *)pbVar30,0x40), pcVar11 != (char *)0x0)) {\n            is_dup = 1;\n            pdVar16 = (def_file *)xstrdup(pbVar30 + (*pbVar30 == 0x40));\n            pcVar11 = strchr((char *)pdVar16,0x40);\n            pdVar24 = pe_def_file;\n            *pcVar11 = '\0';\n            iVar10 = auto_export((bfd *)0x0,(def_file *)&pdVar24->num_exports,\n                                 (char *)&pdVar24->exports,pdVar16);\n            if (iVar10 != 0) {\n              def_file_add_export(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup);\n            }\n            local_48 = pe_def_file;\n            if (is_dup != 0) {\n              free(pdVar16);\n              local_48 = pe_def_file;\n            }\n          }" if (parenthesized_expression "(((!bVar33 && !bVar32) != bVar33) &&\n             (pcVar11 = strchr((char *)pbVar30,0x40), pcVar11 != (char *)0x0))" ( (binary_expression "((!bVar33 && !bVar32) != bVar33) &&\n             (pcVar11 = strchr((char *)pbVar30,0x40), pcVar11 != (char *)0x0)" (parenthesized_expression "((!bVar33 && !bVar32) != bVar33)" ( (binary_expression "(!bVar33 && !bVar32) != bVar33" (parenthesized_expression "(!bVar33 && !bVar32)" ( (binary_expression "!bVar33 && !bVar32" (unary_expression "!bVar33" ! identifier) && (unary_expression "!bVar32" ! identifier)) )) != identifier) )) && (parenthesized_expression "(pcVar11 = strchr((char *)pbVar30,0x40), pcVar11 != (char *)0x0)" ( (comma_expression "pcVar11 = strchr((char *)pbVar30,0x40), pcVar11 != (char *)0x0" (assignment_expression "pcVar11 = strchr((char *)pbVar30,0x40)" identifier = (call_expression "strchr((char *)pbVar30,0x40)" identifier (argument_list "((char *)pbVar30,0x40)" ( (cast_expression "(char *)pbVar30" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) , (binary_expression "pcVar11 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            is_dup = 1;\n            pdVar16 = (def_file *)xstrdup(pbVar30 + (*pbVar30 == 0x40));\n            pcVar11 = strchr((char *)pdVar16,0x40);\n            pdVar24 = pe_def_file;\n            *pcVar11 = '\0';\n            iVar10 = auto_export((bfd *)0x0,(def_file *)&pdVar24->num_exports,\n                                 (char *)&pdVar24->exports,pdVar16);\n            if (iVar10 != 0) {\n              def_file_add_export(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup);\n            }\n            local_48 = pe_def_file;\n            if (is_dup != 0) {\n              free(pdVar16);\n              local_48 = pe_def_file;\n            }\n          }" { (expression_statement "is_dup = 1;" (assignment_expression "is_dup = 1" identifier = number_literal) ;) (expression_statement "pdVar16 = (def_file *)xstrdup(pbVar30 + (*pbVar30 == 0x40));" (assignment_expression "pdVar16 = (def_file *)xstrdup(pbVar30 + (*pbVar30 == 0x40))" identifier = (cast_expression "(def_file *)xstrdup(pbVar30 + (*pbVar30 == 0x40))" ( (type_descriptor "def_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pbVar30 + (*pbVar30 == 0x40))" identifier (argument_list "(pbVar30 + (*pbVar30 == 0x40))" ( (binary_expression "pbVar30 + (*pbVar30 == 0x40)" identifier + (parenthesized_expression "(*pbVar30 == 0x40)" ( (binary_expression "*pbVar30 == 0x40" (pointer_expression "*pbVar30" * identifier) == number_literal) ))) ))))) ;) (expression_statement "pcVar11 = strchr((char *)pdVar16,0x40);" (assignment_expression "pcVar11 = strchr((char *)pdVar16,0x40)" identifier = (call_expression "strchr((char *)pdVar16,0x40)" identifier (argument_list "((char *)pdVar16,0x40)" ( (cast_expression "(char *)pdVar16" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "pdVar24 = pe_def_file;" (assignment_expression "pdVar24 = pe_def_file" identifier = identifier) ;) (expression_statement "*pcVar11 = '\0';" (assignment_expression "*pcVar11 = '\0'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar10 = auto_export((bfd *)0x0,(def_file *)&pdVar24->num_exports,\n                                 (char *)&pdVar24->exports,pdVar16);" (assignment_expression "iVar10 = auto_export((bfd *)0x0,(def_file *)&pdVar24->num_exports,\n                                 (char *)&pdVar24->exports,pdVar16)" identifier = (call_expression "auto_export((bfd *)0x0,(def_file *)&pdVar24->num_exports,\n                                 (char *)&pdVar24->exports,pdVar16)" identifier (argument_list "((bfd *)0x0,(def_file *)&pdVar24->num_exports,\n                                 (char *)&pdVar24->exports,pdVar16)" ( (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(def_file *)&pdVar24->num_exports" ( (type_descriptor "def_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pdVar24->num_exports" & (field_expression "pdVar24->num_exports" identifier -> field_identifier))) , (cast_expression "(char *)&pdVar24->exports" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pdVar24->exports" & (field_expression "pdVar24->exports" identifier -> field_identifier))) , identifier )))) ;) (if_statement "if (iVar10 != 0) {\n              def_file_add_export(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup);\n            }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n              def_file_add_export(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup);\n            }" { (expression_statement "def_file_add_export(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup);" (call_expression "def_file_add_export(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup)" identifier (argument_list "(pe_def_file,(char *)pdVar16,\n                                  *(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40),-1,(char *)0x0,&is_dup)" ( identifier , (cast_expression "(char *)pdVar16" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "*(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40)" * (cast_expression "(char **)((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pe_def_file->exports->internal_name +\n                                            (int)local_40)" ( (binary_expression "(int)&pe_def_file->exports->internal_name +\n                                            (int)local_40" (cast_expression "(int)&pe_def_file->exports->internal_name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pe_def_file->exports->internal_name" & (field_expression "pe_def_file->exports->internal_name" (field_expression "pe_def_file->exports" identifier -> field_identifier) -> field_identifier))) + (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) , number_literal , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&is_dup" & identifier) ))) ;) })) (expression_statement "local_48 = pe_def_file;" (assignment_expression "local_48 = pe_def_file" identifier = identifier) ;) (if_statement "if (is_dup != 0) {\n              free(pdVar16);\n              local_48 = pe_def_file;\n            }" if (parenthesized_expression "(is_dup != 0)" ( (binary_expression "is_dup != 0" identifier != number_literal) )) (compound_statement "{\n              free(pdVar16);\n              local_48 = pe_def_file;\n            }" { (expression_statement "free(pdVar16);" (call_expression "free(pdVar16)" identifier (argument_list "(pdVar16)" ( identifier ))) ;) (expression_statement "local_48 = pe_def_file;" (assignment_expression "local_48 = pe_def_file" identifier = identifier) ;) })) })) (expression_statement "local_44 = (bfd *)((int)local_44 + 1);" (assignment_expression "local_44 = (bfd *)((int)local_44 + 1)" identifier = (cast_expression "(bfd *)((int)local_44 + 1)" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1)" ( (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "sVar14 = local_48->num_exports;" (assignment_expression "sVar14 = local_48->num_exports" identifier = (field_expression "local_48->num_exports" identifier -> field_identifier)) ;) (expression_statement "local_40 = (char *)((int)local_40 + 0x1c);" (assignment_expression "local_40 = (char *)((int)local_40 + 0x1c)" identifier = (cast_expression "(char *)((int)local_40 + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_40 + 0x1c)" ( (binary_expression "(int)local_40 + 0x1c" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar33 = local_44 < sVar14;" (assignment_expression "bVar33 = local_44 < sVar14" identifier = (binary_expression "local_44 < sVar14" identifier < identifier)) ;) (expression_statement "bVar32 = local_44 == (bfd *)sVar14;" (assignment_expression "bVar32 = local_44 == (bfd *)sVar14" identifier = (binary_expression "local_44 == (bfd *)sVar14" identifier == (cast_expression "(bfd *)sVar14" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) }) while (parenthesized_expression "((int)local_44 < (int)sVar14)" ( (binary_expression "(int)local_44 < (int)sVar14" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)sVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (goto_statement "goto LAB_00067212;" goto statement_identifier ;) })) (labeled_statement "LAB_00067c38:\n      iVar10 = 0;" statement_identifier : (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;)) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00066fde:\n      bVar33 = false;\n      iVar25 = 0;\n      local_48 = pe_def_file;\n      if (iVar10 < 1) goto LAB_000671fd;\n      do {\n        pcVar11 = local_48->exports[iVar25].name;\n        cVar29 = *pcVar11;\n        if ((cVar29 != '?') && (pcVar15 = strchr(pcVar11,0x40), pcVar15 != (char *)0x0)) {\n          pcVar11 = (char *)xstrdup(pcVar11 + (cVar29 == '@'));\n          pcVar15 = strrchr(pcVar11,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pcVar15 = pe_def_file->exports[iVar25].name;\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            einfo(pcVar20,pcVar15);\n          }\n          else {\n            *pcVar15 = '\0';\n          }\n          local_48 = pe_def_file;\n          bVar33 = true;\n          pe_def_file->exports[iVar25].name = pcVar11;\n        }\n        sVar14 = local_48->num_exports;\n        iVar25 = iVar25 + 1;\n      } while (iVar25 < (int)sVar14);\n      if (bVar33) {\n        qsort(local_48->exports,sVar14,0x1c,pe_export_sort);\n        local_48 = pe_def_file;\n        sVar14 = pe_def_file->num_exports;\n      }\n      if (pe_dll_stdcall_aliases != 0) goto LAB_0006709d;\nLAB_00067212:\n      pdVar24 = local_48;\n      pdVar19 = local_48->exports;\n      if ((int)sVar14 < 1) goto LAB_00067c38;\n      local_48 = (def_file *)0x0;\n      iVar25 = 0;\n      pdVar26 = pdVar19;\n      do {\n        if (local_48 == (def_file *)0x0) {\nLAB_00067327:\n          if ((def_file *)iVar25 != local_48) {\n            pdVar17 = pdVar19 + iVar25;\n            pdVar17->name = pdVar26->name;\n            pdVar17->internal_name = pdVar26->internal_name;\n            pdVar17->its_name = pdVar26->its_name;\n            pdVar17->ordinal = pdVar26->ordinal;\n            pdVar17->hint = pdVar26->hint;\n            cVar29 = pdVar26->flag_constant;\n            cVar5 = pdVar26->flag_noname;\n            cVar6 = pdVar26->flag_data;\n            pdVar17->flag_private = pdVar26->flag_private;\n            pdVar17->flag_constant = cVar29;\n            pdVar17->flag_noname = cVar5;\n            pdVar17->flag_data = cVar6;\n            uVar7 = *(undefined3 *)&pdVar26->field_0x19;\n            pdVar17->flag_forward = pdVar26->flag_forward;\n            *(undefined3 *)&pdVar17->field_0x19 = uVar7;\n          }\n          iVar25 = iVar25 + 1;\n        }\n        else {\n          local_40 = pdVar26->name;\n          iVar10 = strcmp(local_40,pdVar26[-1].name);\n          if (iVar10 != 0) goto LAB_00067327;\n          pdVar17 = pdVar19 + iVar25 + -1;\n          iVar10 = pdVar17->ordinal;\n          if (((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)) || (iVar10 == iVar22)) {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              einfo(pcVar15,pcVar11);\n              local_40 = pdVar26->name;\n            }\nLAB_00067748:\n            iVar22 = pdVar26->ordinal;\n            if (iVar22 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            pdVar17->ordinal = iVar22;\n          }\n          pdVar17->flag_private = pdVar17->flag_private | pdVar26->flag_private;\n          pdVar17->flag_constant = pdVar17->flag_constant | pdVar26->flag_constant;\n          pdVar17->flag_noname = pdVar17->flag_noname | pdVar26->flag_noname;\n          pdVar17->flag_data = pdVar17->flag_data | pdVar26->flag_data;\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if (pdVar26->internal_name != (char *)0x0) {\n            free(pdVar26->internal_name);\n          }\n          pdVar24 = pe_def_file;\n          if (pdVar26->its_name != (char *)0x0) {\n            free(pdVar26->its_name);\n            pdVar24 = pe_def_file;\n          }\n        }\n        local_48 = (def_file *)((int)local_48 + 1);\n        pdVar26 = pdVar26 + 1;\n      } while ((int)local_48 < pdVar24->num_exports);\n      iVar10 = iVar25 * 8;\n      local_48 = pdVar24;\n    }" else (compound_statement "{\nLAB_00066fde:\n      bVar33 = false;\n      iVar25 = 0;\n      local_48 = pe_def_file;\n      if (iVar10 < 1) goto LAB_000671fd;\n      do {\n        pcVar11 = local_48->exports[iVar25].name;\n        cVar29 = *pcVar11;\n        if ((cVar29 != '?') && (pcVar15 = strchr(pcVar11,0x40), pcVar15 != (char *)0x0)) {\n          pcVar11 = (char *)xstrdup(pcVar11 + (cVar29 == '@'));\n          pcVar15 = strrchr(pcVar11,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pcVar15 = pe_def_file->exports[iVar25].name;\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            einfo(pcVar20,pcVar15);\n          }\n          else {\n            *pcVar15 = '\0';\n          }\n          local_48 = pe_def_file;\n          bVar33 = true;\n          pe_def_file->exports[iVar25].name = pcVar11;\n        }\n        sVar14 = local_48->num_exports;\n        iVar25 = iVar25 + 1;\n      } while (iVar25 < (int)sVar14);\n      if (bVar33) {\n        qsort(local_48->exports,sVar14,0x1c,pe_export_sort);\n        local_48 = pe_def_file;\n        sVar14 = pe_def_file->num_exports;\n      }\n      if (pe_dll_stdcall_aliases != 0) goto LAB_0006709d;\nLAB_00067212:\n      pdVar24 = local_48;\n      pdVar19 = local_48->exports;\n      if ((int)sVar14 < 1) goto LAB_00067c38;\n      local_48 = (def_file *)0x0;\n      iVar25 = 0;\n      pdVar26 = pdVar19;\n      do {\n        if (local_48 == (def_file *)0x0) {\nLAB_00067327:\n          if ((def_file *)iVar25 != local_48) {\n            pdVar17 = pdVar19 + iVar25;\n            pdVar17->name = pdVar26->name;\n            pdVar17->internal_name = pdVar26->internal_name;\n            pdVar17->its_name = pdVar26->its_name;\n            pdVar17->ordinal = pdVar26->ordinal;\n            pdVar17->hint = pdVar26->hint;\n            cVar29 = pdVar26->flag_constant;\n            cVar5 = pdVar26->flag_noname;\n            cVar6 = pdVar26->flag_data;\n            pdVar17->flag_private = pdVar26->flag_private;\n            pdVar17->flag_constant = cVar29;\n            pdVar17->flag_noname = cVar5;\n            pdVar17->flag_data = cVar6;\n            uVar7 = *(undefined3 *)&pdVar26->field_0x19;\n            pdVar17->flag_forward = pdVar26->flag_forward;\n            *(undefined3 *)&pdVar17->field_0x19 = uVar7;\n          }\n          iVar25 = iVar25 + 1;\n        }\n        else {\n          local_40 = pdVar26->name;\n          iVar10 = strcmp(local_40,pdVar26[-1].name);\n          if (iVar10 != 0) goto LAB_00067327;\n          pdVar17 = pdVar19 + iVar25 + -1;\n          iVar10 = pdVar17->ordinal;\n          if (((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)) || (iVar10 == iVar22)) {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              einfo(pcVar15,pcVar11);\n              local_40 = pdVar26->name;\n            }\nLAB_00067748:\n            iVar22 = pdVar26->ordinal;\n            if (iVar22 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            pdVar17->ordinal = iVar22;\n          }\n          pdVar17->flag_private = pdVar17->flag_private | pdVar26->flag_private;\n          pdVar17->flag_constant = pdVar17->flag_constant | pdVar26->flag_constant;\n          pdVar17->flag_noname = pdVar17->flag_noname | pdVar26->flag_noname;\n          pdVar17->flag_data = pdVar17->flag_data | pdVar26->flag_data;\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if (pdVar26->internal_name != (char *)0x0) {\n            free(pdVar26->internal_name);\n          }\n          pdVar24 = pe_def_file;\n          if (pdVar26->its_name != (char *)0x0) {\n            free(pdVar26->its_name);\n            pdVar24 = pe_def_file;\n          }\n        }\n        local_48 = (def_file *)((int)local_48 + 1);\n        pdVar26 = pdVar26 + 1;\n      } while ((int)local_48 < pdVar24->num_exports);\n      iVar10 = iVar25 * 8;\n      local_48 = pdVar24;\n    }" { (labeled_statement "LAB_00066fde:\n      bVar33 = false;" statement_identifier : (expression_statement "bVar33 = false;" (assignment_expression "bVar33 = false" identifier = false) ;)) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "local_48 = pe_def_file;" (assignment_expression "local_48 = pe_def_file" identifier = identifier) ;) (if_statement "if (iVar10 < 1) goto LAB_000671fd;" if (parenthesized_expression "(iVar10 < 1)" ( (binary_expression "iVar10 < 1" identifier < number_literal) )) (goto_statement "goto LAB_000671fd;" goto statement_identifier ;)) (do_statement "do {\n        pcVar11 = local_48->exports[iVar25].name;\n        cVar29 = *pcVar11;\n        if ((cVar29 != '?') && (pcVar15 = strchr(pcVar11,0x40), pcVar15 != (char *)0x0)) {\n          pcVar11 = (char *)xstrdup(pcVar11 + (cVar29 == '@'));\n          pcVar15 = strrchr(pcVar11,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pcVar15 = pe_def_file->exports[iVar25].name;\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            einfo(pcVar20,pcVar15);\n          }\n          else {\n            *pcVar15 = '\0';\n          }\n          local_48 = pe_def_file;\n          bVar33 = true;\n          pe_def_file->exports[iVar25].name = pcVar11;\n        }\n        sVar14 = local_48->num_exports;\n        iVar25 = iVar25 + 1;\n      } while (iVar25 < (int)sVar14);" do (compound_statement "{\n        pcVar11 = local_48->exports[iVar25].name;\n        cVar29 = *pcVar11;\n        if ((cVar29 != '?') && (pcVar15 = strchr(pcVar11,0x40), pcVar15 != (char *)0x0)) {\n          pcVar11 = (char *)xstrdup(pcVar11 + (cVar29 == '@'));\n          pcVar15 = strrchr(pcVar11,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pcVar15 = pe_def_file->exports[iVar25].name;\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            einfo(pcVar20,pcVar15);\n          }\n          else {\n            *pcVar15 = '\0';\n          }\n          local_48 = pe_def_file;\n          bVar33 = true;\n          pe_def_file->exports[iVar25].name = pcVar11;\n        }\n        sVar14 = local_48->num_exports;\n        iVar25 = iVar25 + 1;\n      }" { (expression_statement "pcVar11 = local_48->exports[iVar25].name;" (assignment_expression "pcVar11 = local_48->exports[iVar25].name" identifier = (field_expression "local_48->exports[iVar25].name" (subscript_expression "local_48->exports[iVar25]" (field_expression "local_48->exports" identifier -> field_identifier) [ identifier ]) . field_identifier)) ;) (expression_statement "cVar29 = *pcVar11;" (assignment_expression "cVar29 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (if_statement "if ((cVar29 != '?') && (pcVar15 = strchr(pcVar11,0x40), pcVar15 != (char *)0x0)) {\n          pcVar11 = (char *)xstrdup(pcVar11 + (cVar29 == '@'));\n          pcVar15 = strrchr(pcVar11,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pcVar15 = pe_def_file->exports[iVar25].name;\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            einfo(pcVar20,pcVar15);\n          }\n          else {\n            *pcVar15 = '\0';\n          }\n          local_48 = pe_def_file;\n          bVar33 = true;\n          pe_def_file->exports[iVar25].name = pcVar11;\n        }" if (parenthesized_expression "((cVar29 != '?') && (pcVar15 = strchr(pcVar11,0x40), pcVar15 != (char *)0x0))" ( (binary_expression "(cVar29 != '?') && (pcVar15 = strchr(pcVar11,0x40), pcVar15 != (char *)0x0)" (parenthesized_expression "(cVar29 != '?')" ( (binary_expression "cVar29 != '?'" identifier != (char_literal "'?'" ' character ')) )) && (parenthesized_expression "(pcVar15 = strchr(pcVar11,0x40), pcVar15 != (char *)0x0)" ( (comma_expression "pcVar15 = strchr(pcVar11,0x40), pcVar15 != (char *)0x0" (assignment_expression "pcVar15 = strchr(pcVar11,0x40)" identifier = (call_expression "strchr(pcVar11,0x40)" identifier (argument_list "(pcVar11,0x40)" ( identifier , number_literal )))) , (binary_expression "pcVar15 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          pcVar11 = (char *)xstrdup(pcVar11 + (cVar29 == '@'));\n          pcVar15 = strrchr(pcVar11,0x40);\n          if (pcVar15 == (char *)0x0) {\n            pcVar15 = pe_def_file->exports[iVar25].name;\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            einfo(pcVar20,pcVar15);\n          }\n          else {\n            *pcVar15 = '\0';\n          }\n          local_48 = pe_def_file;\n          bVar33 = true;\n          pe_def_file->exports[iVar25].name = pcVar11;\n        }" { (expression_statement "pcVar11 = (char *)xstrdup(pcVar11 + (cVar29 == '@'));" (assignment_expression "pcVar11 = (char *)xstrdup(pcVar11 + (cVar29 == '@'))" identifier = (cast_expression "(char *)xstrdup(pcVar11 + (cVar29 == '@'))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pcVar11 + (cVar29 == '@'))" identifier (argument_list "(pcVar11 + (cVar29 == '@'))" ( (binary_expression "pcVar11 + (cVar29 == '@')" identifier + (parenthesized_expression "(cVar29 == '@')" ( (binary_expression "cVar29 == '@'" identifier == (char_literal "'@'" ' character ')) ))) ))))) ;) (expression_statement "pcVar15 = strrchr(pcVar11,0x40);" (assignment_expression "pcVar15 = strrchr(pcVar11,0x40)" identifier = (call_expression "strrchr(pcVar11,0x40)" identifier (argument_list "(pcVar11,0x40)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar15 == (char *)0x0) {\n            pcVar15 = pe_def_file->exports[iVar25].name;\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            einfo(pcVar20,pcVar15);\n          }\n          else {\n            *pcVar15 = '\0';\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            pcVar15 = pe_def_file->exports[iVar25].name;\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            einfo(pcVar20,pcVar15);\n          }" { (expression_statement "pcVar15 = pe_def_file->exports[iVar25].name;" (assignment_expression "pcVar15 = pe_def_file->exports[iVar25].name" identifier = (field_expression "pe_def_file->exports[iVar25].name" (subscript_expression "pe_def_file->exports[iVar25]" (field_expression "pe_def_file->exports" identifier -> field_identifier) [ identifier ]) . field_identifier)) ;) (expression_statement "pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);" (assignment_expression "pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5)" identifier (argument_list "(0,"%X%P: cannot export %s: invalid export name\n",5)" ( number_literal , (string_literal ""%X%P: cannot export %s: invalid export name\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar20,pcVar15);" (call_expression "einfo(pcVar20,pcVar15)" identifier (argument_list "(pcVar20,pcVar15)" ( identifier , identifier ))) ;) }) (else_clause "else {\n            *pcVar15 = '\0';\n          }" else (compound_statement "{\n            *pcVar15 = '\0';\n          }" { (expression_statement "*pcVar15 = '\0';" (assignment_expression "*pcVar15 = '\0'" (pointer_expression "*pcVar15" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "local_48 = pe_def_file;" (assignment_expression "local_48 = pe_def_file" identifier = identifier) ;) (expression_statement "bVar33 = true;" (assignment_expression "bVar33 = true" identifier = true) ;) (expression_statement "pe_def_file->exports[iVar25].name = pcVar11;" (assignment_expression "pe_def_file->exports[iVar25].name = pcVar11" (field_expression "pe_def_file->exports[iVar25].name" (subscript_expression "pe_def_file->exports[iVar25]" (field_expression "pe_def_file->exports" identifier -> field_identifier) [ identifier ]) . field_identifier) = identifier) ;) })) (expression_statement "sVar14 = local_48->num_exports;" (assignment_expression "sVar14 = local_48->num_exports" identifier = (field_expression "local_48->num_exports" identifier -> field_identifier)) ;) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar25 < (int)sVar14)" ( (binary_expression "iVar25 < (int)sVar14" identifier < (cast_expression "(int)sVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (if_statement "if (bVar33) {\n        qsort(local_48->exports,sVar14,0x1c,pe_export_sort);\n        local_48 = pe_def_file;\n        sVar14 = pe_def_file->num_exports;\n      }" if (parenthesized_expression "(bVar33)" ( identifier )) (compound_statement "{\n        qsort(local_48->exports,sVar14,0x1c,pe_export_sort);\n        local_48 = pe_def_file;\n        sVar14 = pe_def_file->num_exports;\n      }" { (expression_statement "qsort(local_48->exports,sVar14,0x1c,pe_export_sort);" (call_expression "qsort(local_48->exports,sVar14,0x1c,pe_export_sort)" identifier (argument_list "(local_48->exports,sVar14,0x1c,pe_export_sort)" ( (field_expression "local_48->exports" identifier -> field_identifier) , identifier , number_literal , identifier ))) ;) (expression_statement "local_48 = pe_def_file;" (assignment_expression "local_48 = pe_def_file" identifier = identifier) ;) (expression_statement "sVar14 = pe_def_file->num_exports;" (assignment_expression "sVar14 = pe_def_file->num_exports" identifier = (field_expression "pe_def_file->num_exports" identifier -> field_identifier)) ;) })) (if_statement "if (pe_dll_stdcall_aliases != 0) goto LAB_0006709d;" if (parenthesized_expression "(pe_dll_stdcall_aliases != 0)" ( (binary_expression "pe_dll_stdcall_aliases != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006709d;" goto statement_identifier ;)) (labeled_statement "LAB_00067212:\n      pdVar24 = local_48;" statement_identifier : (expression_statement "pdVar24 = local_48;" (assignment_expression "pdVar24 = local_48" identifier = identifier) ;)) (expression_statement "pdVar19 = local_48->exports;" (assignment_expression "pdVar19 = local_48->exports" identifier = (field_expression "local_48->exports" identifier -> field_identifier)) ;) (if_statement "if ((int)sVar14 < 1) goto LAB_00067c38;" if (parenthesized_expression "((int)sVar14 < 1)" ( (binary_expression "(int)sVar14 < 1" (cast_expression "(int)sVar14" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00067c38;" goto statement_identifier ;)) (expression_statement "local_48 = (def_file *)0x0;" (assignment_expression "local_48 = (def_file *)0x0" identifier = (cast_expression "(def_file *)0x0" ( (type_descriptor "def_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "pdVar26 = pdVar19;" (assignment_expression "pdVar26 = pdVar19" identifier = identifier) ;) (do_statement "do {\n        if (local_48 == (def_file *)0x0) {\nLAB_00067327:\n          if ((def_file *)iVar25 != local_48) {\n            pdVar17 = pdVar19 + iVar25;\n            pdVar17->name = pdVar26->name;\n            pdVar17->internal_name = pdVar26->internal_name;\n            pdVar17->its_name = pdVar26->its_name;\n            pdVar17->ordinal = pdVar26->ordinal;\n            pdVar17->hint = pdVar26->hint;\n            cVar29 = pdVar26->flag_constant;\n            cVar5 = pdVar26->flag_noname;\n            cVar6 = pdVar26->flag_data;\n            pdVar17->flag_private = pdVar26->flag_private;\n            pdVar17->flag_constant = cVar29;\n            pdVar17->flag_noname = cVar5;\n            pdVar17->flag_data = cVar6;\n            uVar7 = *(undefined3 *)&pdVar26->field_0x19;\n            pdVar17->flag_forward = pdVar26->flag_forward;\n            *(undefined3 *)&pdVar17->field_0x19 = uVar7;\n          }\n          iVar25 = iVar25 + 1;\n        }\n        else {\n          local_40 = pdVar26->name;\n          iVar10 = strcmp(local_40,pdVar26[-1].name);\n          if (iVar10 != 0) goto LAB_00067327;\n          pdVar17 = pdVar19 + iVar25 + -1;\n          iVar10 = pdVar17->ordinal;\n          if (((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)) || (iVar10 == iVar22)) {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              einfo(pcVar15,pcVar11);\n              local_40 = pdVar26->name;\n            }\nLAB_00067748:\n            iVar22 = pdVar26->ordinal;\n            if (iVar22 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            pdVar17->ordinal = iVar22;\n          }\n          pdVar17->flag_private = pdVar17->flag_private | pdVar26->flag_private;\n          pdVar17->flag_constant = pdVar17->flag_constant | pdVar26->flag_constant;\n          pdVar17->flag_noname = pdVar17->flag_noname | pdVar26->flag_noname;\n          pdVar17->flag_data = pdVar17->flag_data | pdVar26->flag_data;\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if (pdVar26->internal_name != (char *)0x0) {\n            free(pdVar26->internal_name);\n          }\n          pdVar24 = pe_def_file;\n          if (pdVar26->its_name != (char *)0x0) {\n            free(pdVar26->its_name);\n            pdVar24 = pe_def_file;\n          }\n        }\n        local_48 = (def_file *)((int)local_48 + 1);\n        pdVar26 = pdVar26 + 1;\n      } while ((int)local_48 < pdVar24->num_exports);" do (compound_statement "{\n        if (local_48 == (def_file *)0x0) {\nLAB_00067327:\n          if ((def_file *)iVar25 != local_48) {\n            pdVar17 = pdVar19 + iVar25;\n            pdVar17->name = pdVar26->name;\n            pdVar17->internal_name = pdVar26->internal_name;\n            pdVar17->its_name = pdVar26->its_name;\n            pdVar17->ordinal = pdVar26->ordinal;\n            pdVar17->hint = pdVar26->hint;\n            cVar29 = pdVar26->flag_constant;\n            cVar5 = pdVar26->flag_noname;\n            cVar6 = pdVar26->flag_data;\n            pdVar17->flag_private = pdVar26->flag_private;\n            pdVar17->flag_constant = cVar29;\n            pdVar17->flag_noname = cVar5;\n            pdVar17->flag_data = cVar6;\n            uVar7 = *(undefined3 *)&pdVar26->field_0x19;\n            pdVar17->flag_forward = pdVar26->flag_forward;\n            *(undefined3 *)&pdVar17->field_0x19 = uVar7;\n          }\n          iVar25 = iVar25 + 1;\n        }\n        else {\n          local_40 = pdVar26->name;\n          iVar10 = strcmp(local_40,pdVar26[-1].name);\n          if (iVar10 != 0) goto LAB_00067327;\n          pdVar17 = pdVar19 + iVar25 + -1;\n          iVar10 = pdVar17->ordinal;\n          if (((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)) || (iVar10 == iVar22)) {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              einfo(pcVar15,pcVar11);\n              local_40 = pdVar26->name;\n            }\nLAB_00067748:\n            iVar22 = pdVar26->ordinal;\n            if (iVar22 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            pdVar17->ordinal = iVar22;\n          }\n          pdVar17->flag_private = pdVar17->flag_private | pdVar26->flag_private;\n          pdVar17->flag_constant = pdVar17->flag_constant | pdVar26->flag_constant;\n          pdVar17->flag_noname = pdVar17->flag_noname | pdVar26->flag_noname;\n          pdVar17->flag_data = pdVar17->flag_data | pdVar26->flag_data;\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if (pdVar26->internal_name != (char *)0x0) {\n            free(pdVar26->internal_name);\n          }\n          pdVar24 = pe_def_file;\n          if (pdVar26->its_name != (char *)0x0) {\n            free(pdVar26->its_name);\n            pdVar24 = pe_def_file;\n          }\n        }\n        local_48 = (def_file *)((int)local_48 + 1);\n        pdVar26 = pdVar26 + 1;\n      }" { (if_statement "if (local_48 == (def_file *)0x0) {\nLAB_00067327:\n          if ((def_file *)iVar25 != local_48) {\n            pdVar17 = pdVar19 + iVar25;\n            pdVar17->name = pdVar26->name;\n            pdVar17->internal_name = pdVar26->internal_name;\n            pdVar17->its_name = pdVar26->its_name;\n            pdVar17->ordinal = pdVar26->ordinal;\n            pdVar17->hint = pdVar26->hint;\n            cVar29 = pdVar26->flag_constant;\n            cVar5 = pdVar26->flag_noname;\n            cVar6 = pdVar26->flag_data;\n            pdVar17->flag_private = pdVar26->flag_private;\n            pdVar17->flag_constant = cVar29;\n            pdVar17->flag_noname = cVar5;\n            pdVar17->flag_data = cVar6;\n            uVar7 = *(undefined3 *)&pdVar26->field_0x19;\n            pdVar17->flag_forward = pdVar26->flag_forward;\n            *(undefined3 *)&pdVar17->field_0x19 = uVar7;\n          }\n          iVar25 = iVar25 + 1;\n        }\n        else {\n          local_40 = pdVar26->name;\n          iVar10 = strcmp(local_40,pdVar26[-1].name);\n          if (iVar10 != 0) goto LAB_00067327;\n          pdVar17 = pdVar19 + iVar25 + -1;\n          iVar10 = pdVar17->ordinal;\n          if (((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)) || (iVar10 == iVar22)) {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              einfo(pcVar15,pcVar11);\n              local_40 = pdVar26->name;\n            }\nLAB_00067748:\n            iVar22 = pdVar26->ordinal;\n            if (iVar22 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            pdVar17->ordinal = iVar22;\n          }\n          pdVar17->flag_private = pdVar17->flag_private | pdVar26->flag_private;\n          pdVar17->flag_constant = pdVar17->flag_constant | pdVar26->flag_constant;\n          pdVar17->flag_noname = pdVar17->flag_noname | pdVar26->flag_noname;\n          pdVar17->flag_data = pdVar17->flag_data | pdVar26->flag_data;\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if (pdVar26->internal_name != (char *)0x0) {\n            free(pdVar26->internal_name);\n          }\n          pdVar24 = pe_def_file;\n          if (pdVar26->its_name != (char *)0x0) {\n            free(pdVar26->its_name);\n            pdVar24 = pe_def_file;\n          }\n        }" if (parenthesized_expression "(local_48 == (def_file *)0x0)" ( (binary_expression "local_48 == (def_file *)0x0" identifier == (cast_expression "(def_file *)0x0" ( (type_descriptor "def_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00067327:\n          if ((def_file *)iVar25 != local_48) {\n            pdVar17 = pdVar19 + iVar25;\n            pdVar17->name = pdVar26->name;\n            pdVar17->internal_name = pdVar26->internal_name;\n            pdVar17->its_name = pdVar26->its_name;\n            pdVar17->ordinal = pdVar26->ordinal;\n            pdVar17->hint = pdVar26->hint;\n            cVar29 = pdVar26->flag_constant;\n            cVar5 = pdVar26->flag_noname;\n            cVar6 = pdVar26->flag_data;\n            pdVar17->flag_private = pdVar26->flag_private;\n            pdVar17->flag_constant = cVar29;\n            pdVar17->flag_noname = cVar5;\n            pdVar17->flag_data = cVar6;\n            uVar7 = *(undefined3 *)&pdVar26->field_0x19;\n            pdVar17->flag_forward = pdVar26->flag_forward;\n            *(undefined3 *)&pdVar17->field_0x19 = uVar7;\n          }\n          iVar25 = iVar25 + 1;\n        }" { (labeled_statement "LAB_00067327:\n          if ((def_file *)iVar25 != local_48) {\n            pdVar17 = pdVar19 + iVar25;\n            pdVar17->name = pdVar26->name;\n            pdVar17->internal_name = pdVar26->internal_name;\n            pdVar17->its_name = pdVar26->its_name;\n            pdVar17->ordinal = pdVar26->ordinal;\n            pdVar17->hint = pdVar26->hint;\n            cVar29 = pdVar26->flag_constant;\n            cVar5 = pdVar26->flag_noname;\n            cVar6 = pdVar26->flag_data;\n            pdVar17->flag_private = pdVar26->flag_private;\n            pdVar17->flag_constant = cVar29;\n            pdVar17->flag_noname = cVar5;\n            pdVar17->flag_data = cVar6;\n            uVar7 = *(undefined3 *)&pdVar26->field_0x19;\n            pdVar17->flag_forward = pdVar26->flag_forward;\n            *(undefined3 *)&pdVar17->field_0x19 = uVar7;\n          }" statement_identifier : (if_statement "if ((def_file *)iVar25 != local_48) {\n            pdVar17 = pdVar19 + iVar25;\n            pdVar17->name = pdVar26->name;\n            pdVar17->internal_name = pdVar26->internal_name;\n            pdVar17->its_name = pdVar26->its_name;\n            pdVar17->ordinal = pdVar26->ordinal;\n            pdVar17->hint = pdVar26->hint;\n            cVar29 = pdVar26->flag_constant;\n            cVar5 = pdVar26->flag_noname;\n            cVar6 = pdVar26->flag_data;\n            pdVar17->flag_private = pdVar26->flag_private;\n            pdVar17->flag_constant = cVar29;\n            pdVar17->flag_noname = cVar5;\n            pdVar17->flag_data = cVar6;\n            uVar7 = *(undefined3 *)&pdVar26->field_0x19;\n            pdVar17->flag_forward = pdVar26->flag_forward;\n            *(undefined3 *)&pdVar17->field_0x19 = uVar7;\n          }" if (parenthesized_expression "((def_file *)iVar25 != local_48)" ( (binary_expression "(def_file *)iVar25 != local_48" (cast_expression "(def_file *)iVar25" ( (type_descriptor "def_file *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n            pdVar17 = pdVar19 + iVar25;\n            pdVar17->name = pdVar26->name;\n            pdVar17->internal_name = pdVar26->internal_name;\n            pdVar17->its_name = pdVar26->its_name;\n            pdVar17->ordinal = pdVar26->ordinal;\n            pdVar17->hint = pdVar26->hint;\n            cVar29 = pdVar26->flag_constant;\n            cVar5 = pdVar26->flag_noname;\n            cVar6 = pdVar26->flag_data;\n            pdVar17->flag_private = pdVar26->flag_private;\n            pdVar17->flag_constant = cVar29;\n            pdVar17->flag_noname = cVar5;\n            pdVar17->flag_data = cVar6;\n            uVar7 = *(undefined3 *)&pdVar26->field_0x19;\n            pdVar17->flag_forward = pdVar26->flag_forward;\n            *(undefined3 *)&pdVar17->field_0x19 = uVar7;\n          }" { (expression_statement "pdVar17 = pdVar19 + iVar25;" (assignment_expression "pdVar17 = pdVar19 + iVar25" identifier = (binary_expression "pdVar19 + iVar25" identifier + identifier)) ;) (expression_statement "pdVar17->name = pdVar26->name;" (assignment_expression "pdVar17->name = pdVar26->name" (field_expression "pdVar17->name" identifier -> field_identifier) = (field_expression "pdVar26->name" identifier -> field_identifier)) ;) (expression_statement "pdVar17->internal_name = pdVar26->internal_name;" (assignment_expression "pdVar17->internal_name = pdVar26->internal_name" (field_expression "pdVar17->internal_name" identifier -> field_identifier) = (field_expression "pdVar26->internal_name" identifier -> field_identifier)) ;) (expression_statement "pdVar17->its_name = pdVar26->its_name;" (assignment_expression "pdVar17->its_name = pdVar26->its_name" (field_expression "pdVar17->its_name" identifier -> field_identifier) = (field_expression "pdVar26->its_name" identifier -> field_identifier)) ;) (expression_statement "pdVar17->ordinal = pdVar26->ordinal;" (assignment_expression "pdVar17->ordinal = pdVar26->ordinal" (field_expression "pdVar17->ordinal" identifier -> field_identifier) = (field_expression "pdVar26->ordinal" identifier -> field_identifier)) ;) (expression_statement "pdVar17->hint = pdVar26->hint;" (assignment_expression "pdVar17->hint = pdVar26->hint" (field_expression "pdVar17->hint" identifier -> field_identifier) = (field_expression "pdVar26->hint" identifier -> field_identifier)) ;) (expression_statement "cVar29 = pdVar26->flag_constant;" (assignment_expression "cVar29 = pdVar26->flag_constant" identifier = (field_expression "pdVar26->flag_constant" identifier -> field_identifier)) ;) (expression_statement "cVar5 = pdVar26->flag_noname;" (assignment_expression "cVar5 = pdVar26->flag_noname" identifier = (field_expression "pdVar26->flag_noname" identifier -> field_identifier)) ;) (expression_statement "cVar6 = pdVar26->flag_data;" (assignment_expression "cVar6 = pdVar26->flag_data" identifier = (field_expression "pdVar26->flag_data" identifier -> field_identifier)) ;) (expression_statement "pdVar17->flag_private = pdVar26->flag_private;" (assignment_expression "pdVar17->flag_private = pdVar26->flag_private" (field_expression "pdVar17->flag_private" identifier -> field_identifier) = (field_expression "pdVar26->flag_private" identifier -> field_identifier)) ;) (expression_statement "pdVar17->flag_constant = cVar29;" (assignment_expression "pdVar17->flag_constant = cVar29" (field_expression "pdVar17->flag_constant" identifier -> field_identifier) = identifier) ;) (expression_statement "pdVar17->flag_noname = cVar5;" (assignment_expression "pdVar17->flag_noname = cVar5" (field_expression "pdVar17->flag_noname" identifier -> field_identifier) = identifier) ;) (expression_statement "pdVar17->flag_data = cVar6;" (assignment_expression "pdVar17->flag_data = cVar6" (field_expression "pdVar17->flag_data" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar7 = *(undefined3 *)&pdVar26->field_0x19;" (assignment_expression "uVar7 = *(undefined3 *)&pdVar26->field_0x19" identifier = (pointer_expression "*(undefined3 *)&pdVar26->field_0x19" * (cast_expression "(undefined3 *)&pdVar26->field_0x19" ( (type_descriptor "undefined3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pdVar26->field_0x19" & (field_expression "pdVar26->field_0x19" identifier -> field_identifier))))) ;) (expression_statement "pdVar17->flag_forward = pdVar26->flag_forward;" (assignment_expression "pdVar17->flag_forward = pdVar26->flag_forward" (field_expression "pdVar17->flag_forward" identifier -> field_identifier) = (field_expression "pdVar26->flag_forward" identifier -> field_identifier)) ;) (expression_statement "*(undefined3 *)&pdVar17->field_0x19 = uVar7;" (assignment_expression "*(undefined3 *)&pdVar17->field_0x19 = uVar7" (pointer_expression "*(undefined3 *)&pdVar17->field_0x19" * (cast_expression "(undefined3 *)&pdVar17->field_0x19" ( (type_descriptor "undefined3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pdVar17->field_0x19" & (field_expression "pdVar17->field_0x19" identifier -> field_identifier)))) = identifier) ;) }))) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          local_40 = pdVar26->name;\n          iVar10 = strcmp(local_40,pdVar26[-1].name);\n          if (iVar10 != 0) goto LAB_00067327;\n          pdVar17 = pdVar19 + iVar25 + -1;\n          iVar10 = pdVar17->ordinal;\n          if (((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)) || (iVar10 == iVar22)) {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              einfo(pcVar15,pcVar11);\n              local_40 = pdVar26->name;\n            }\nLAB_00067748:\n            iVar22 = pdVar26->ordinal;\n            if (iVar22 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            pdVar17->ordinal = iVar22;\n          }\n          pdVar17->flag_private = pdVar17->flag_private | pdVar26->flag_private;\n          pdVar17->flag_constant = pdVar17->flag_constant | pdVar26->flag_constant;\n          pdVar17->flag_noname = pdVar17->flag_noname | pdVar26->flag_noname;\n          pdVar17->flag_data = pdVar17->flag_data | pdVar26->flag_data;\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if (pdVar26->internal_name != (char *)0x0) {\n            free(pdVar26->internal_name);\n          }\n          pdVar24 = pe_def_file;\n          if (pdVar26->its_name != (char *)0x0) {\n            free(pdVar26->its_name);\n            pdVar24 = pe_def_file;\n          }\n        }" else (compound_statement "{\n          local_40 = pdVar26->name;\n          iVar10 = strcmp(local_40,pdVar26[-1].name);\n          if (iVar10 != 0) goto LAB_00067327;\n          pdVar17 = pdVar19 + iVar25 + -1;\n          iVar10 = pdVar17->ordinal;\n          if (((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)) || (iVar10 == iVar22)) {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              einfo(pcVar15,pcVar11);\n              local_40 = pdVar26->name;\n            }\nLAB_00067748:\n            iVar22 = pdVar26->ordinal;\n            if (iVar22 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            pdVar17->ordinal = iVar22;\n          }\n          pdVar17->flag_private = pdVar17->flag_private | pdVar26->flag_private;\n          pdVar17->flag_constant = pdVar17->flag_constant | pdVar26->flag_constant;\n          pdVar17->flag_noname = pdVar17->flag_noname | pdVar26->flag_noname;\n          pdVar17->flag_data = pdVar17->flag_data | pdVar26->flag_data;\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if (pdVar26->internal_name != (char *)0x0) {\n            free(pdVar26->internal_name);\n          }\n          pdVar24 = pe_def_file;\n          if (pdVar26->its_name != (char *)0x0) {\n            free(pdVar26->its_name);\n            pdVar24 = pe_def_file;\n          }\n        }" { (expression_statement "local_40 = pdVar26->name;" (assignment_expression "local_40 = pdVar26->name" identifier = (field_expression "pdVar26->name" identifier -> field_identifier)) ;) (expression_statement "iVar10 = strcmp(local_40,pdVar26[-1].name);" (assignment_expression "iVar10 = strcmp(local_40,pdVar26[-1].name)" identifier = (call_expression "strcmp(local_40,pdVar26[-1].name)" identifier (argument_list "(local_40,pdVar26[-1].name)" ( identifier , (field_expression "pdVar26[-1].name" (subscript_expression "pdVar26[-1]" identifier [ number_literal ]) . field_identifier) )))) ;) (if_statement "if (iVar10 != 0) goto LAB_00067327;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00067327;" goto statement_identifier ;)) (expression_statement "pdVar17 = pdVar19 + iVar25 + -1;" (assignment_expression "pdVar17 = pdVar19 + iVar25 + -1" identifier = (binary_expression "pdVar19 + iVar25 + -1" (binary_expression "pdVar19 + iVar25" identifier + identifier) + number_literal)) ;) (expression_statement "iVar10 = pdVar17->ordinal;" (assignment_expression "iVar10 = pdVar17->ordinal" identifier = (field_expression "pdVar17->ordinal" identifier -> field_identifier)) ;) (if_statement "if (((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)) || (iVar10 == iVar22)) {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              einfo(pcVar15,pcVar11);\n              local_40 = pdVar26->name;\n            }\nLAB_00067748:\n            iVar22 = pdVar26->ordinal;\n            if (iVar22 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            pdVar17->ordinal = iVar22;\n          }" if (parenthesized_expression "(((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)) || (iVar10 == iVar22))" ( (binary_expression "((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)) || (iVar10 == iVar22)" (parenthesized_expression "((iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1))" ( (binary_expression "(iVar10 == -1) || (iVar22 = pdVar26->ordinal, iVar22 == -1)" (parenthesized_expression "(iVar10 == -1)" ( (binary_expression "iVar10 == -1" identifier == number_literal) )) || (parenthesized_expression "(iVar22 = pdVar26->ordinal, iVar22 == -1)" ( (comma_expression "iVar22 = pdVar26->ordinal, iVar22 == -1" (assignment_expression "iVar22 = pdVar26->ordinal" identifier = (field_expression "pdVar26->ordinal" identifier -> field_identifier)) , (binary_expression "iVar22 == -1" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar10 == iVar22)" ( (binary_expression "iVar10 == iVar22" identifier == identifier) ))) )) (compound_statement "{\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              einfo(pcVar15,pcVar11);\n              local_40 = pdVar26->name;\n            }\nLAB_00067748:\n            iVar22 = pdVar26->ordinal;\n            if (iVar22 != -1) goto LAB_000672a7;\n          }" { (if_statement "if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              einfo(pcVar15,pcVar11);\n              local_40 = pdVar26->name;\n            }" if (parenthesized_expression "(pe_dll_warn_dup_exports != 0)" ( (binary_expression "pe_dll_warn_dup_exports != 0" identifier != number_literal) )) (compound_statement "{\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              einfo(pcVar15,pcVar11);\n              local_40 = pdVar26->name;\n            }" { (expression_statement "pcVar11 = pdVar17->name;" (assignment_expression "pcVar11 = pdVar17->name" identifier = (field_expression "pdVar17->name" identifier -> field_identifier)) ;) (expression_statement "pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);" (assignment_expression "pcVar15 = (char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5)" identifier (argument_list "(0,"%P: warning, duplicate EXPORT: %s\n",5)" ( number_literal , (string_literal ""%P: warning, duplicate EXPORT: %s\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar15,pcVar11);" (call_expression "einfo(pcVar15,pcVar11)" identifier (argument_list "(pcVar15,pcVar11)" ( identifier , identifier ))) ;) (expression_statement "local_40 = pdVar26->name;" (assignment_expression "local_40 = pdVar26->name" identifier = (field_expression "pdVar26->name" identifier -> field_identifier)) ;) })) (labeled_statement "LAB_00067748:\n            iVar22 = pdVar26->ordinal;" statement_identifier : (expression_statement "iVar22 = pdVar26->ordinal;" (assignment_expression "iVar22 = pdVar26->ordinal" identifier = (field_expression "pdVar26->ordinal" identifier -> field_identifier)) ;)) (if_statement "if (iVar22 != -1) goto LAB_000672a7;" if (parenthesized_expression "(iVar22 != -1)" ( (binary_expression "iVar22 != -1" identifier != number_literal) )) (goto_statement "goto LAB_000672a7;" goto statement_identifier ;)) }) (else_clause "else {\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            pdVar17->ordinal = iVar22;\n          }" else (compound_statement "{\n            if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            pdVar17->ordinal = iVar22;\n          }" { (if_statement "if (pe_dll_warn_dup_exports != 0) {\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }" if (parenthesized_expression "(pe_dll_warn_dup_exports != 0)" ( (binary_expression "pe_dll_warn_dup_exports != 0" identifier != number_literal) )) (compound_statement "{\n              pcVar11 = pdVar17->name;\n              pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);\n              einfo(pcVar15,pcVar11,iVar10,iVar22);\n              local_40 = pdVar26->name;\n              goto LAB_00067748;\n            }" { (expression_statement "pcVar11 = pdVar17->name;" (assignment_expression "pcVar11 = pdVar17->name" identifier = (field_expression "pdVar17->name" identifier -> field_identifier)) ;) (expression_statement "pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5);" (assignment_expression "pcVar15 = (char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5)" identifier (argument_list "(0,\n                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"\n                                          ,5)" ( number_literal , (string_literal ""%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar15,pcVar11,iVar10,iVar22);" (call_expression "einfo(pcVar15,pcVar11,iVar10,iVar22)" identifier (argument_list "(pcVar15,pcVar11,iVar10,iVar22)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_40 = pdVar26->name;" (assignment_expression "local_40 = pdVar26->name" identifier = (field_expression "pdVar26->name" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00067748;" goto statement_identifier ;) })) (labeled_statement "LAB_000672a7:\n            pdVar17->ordinal = iVar22;" statement_identifier : (expression_statement "pdVar17->ordinal = iVar22;" (assignment_expression "pdVar17->ordinal = iVar22" (field_expression "pdVar17->ordinal" identifier -> field_identifier) = identifier) ;)) }))) (expression_statement "pdVar17->flag_private = pdVar17->flag_private | pdVar26->flag_private;" (assignment_expression "pdVar17->flag_private = pdVar17->flag_private | pdVar26->flag_private" (field_expression "pdVar17->flag_private" identifier -> field_identifier) = (binary_expression "pdVar17->flag_private | pdVar26->flag_private" (field_expression "pdVar17->flag_private" identifier -> field_identifier) | (field_expression "pdVar26->flag_private" identifier -> field_identifier))) ;) (expression_statement "pdVar17->flag_constant = pdVar17->flag_constant | pdVar26->flag_constant;" (assignment_expression "pdVar17->flag_constant = pdVar17->flag_constant | pdVar26->flag_constant" (field_expression "pdVar17->flag_constant" identifier -> field_identifier) = (binary_expression "pdVar17->flag_constant | pdVar26->flag_constant" (field_expression "pdVar17->flag_constant" identifier -> field_identifier) | (field_expression "pdVar26->flag_constant" identifier -> field_identifier))) ;) (expression_statement "pdVar17->flag_noname = pdVar17->flag_noname | pdVar26->flag_noname;" (assignment_expression "pdVar17->flag_noname = pdVar17->flag_noname | pdVar26->flag_noname" (field_expression "pdVar17->flag_noname" identifier -> field_identifier) = (binary_expression "pdVar17->flag_noname | pdVar26->flag_noname" (field_expression "pdVar17->flag_noname" identifier -> field_identifier) | (field_expression "pdVar26->flag_noname" identifier -> field_identifier))) ;) (expression_statement "pdVar17->flag_data = pdVar17->flag_data | pdVar26->flag_data;" (assignment_expression "pdVar17->flag_data = pdVar17->flag_data | pdVar26->flag_data" (field_expression "pdVar17->flag_data" identifier -> field_identifier) = (binary_expression "pdVar17->flag_data | pdVar26->flag_data" (field_expression "pdVar17->flag_data" identifier -> field_identifier) | (field_expression "pdVar26->flag_data" identifier -> field_identifier))) ;) (if_statement "if (local_40 != (char *)0x0) {\n            free(local_40);\n          }" if (parenthesized_expression "(local_40 != (char *)0x0)" ( (binary_expression "local_40 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            free(local_40);\n          }" { (expression_statement "free(local_40);" (call_expression "free(local_40)" identifier (argument_list "(local_40)" ( identifier ))) ;) })) (if_statement "if (pdVar26->internal_name != (char *)0x0) {\n            free(pdVar26->internal_name);\n          }" if (parenthesized_expression "(pdVar26->internal_name != (char *)0x0)" ( (binary_expression "pdVar26->internal_name != (char *)0x0" (field_expression "pdVar26->internal_name" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            free(pdVar26->internal_name);\n          }" { (expression_statement "free(pdVar26->internal_name);" (call_expression "free(pdVar26->internal_name)" identifier (argument_list "(pdVar26->internal_name)" ( (field_expression "pdVar26->internal_name" identifier -> field_identifier) ))) ;) })) (expression_statement "pdVar24 = pe_def_file;" (assignment_expression "pdVar24 = pe_def_file" identifier = identifier) ;) (if_statement "if (pdVar26->its_name != (char *)0x0) {\n            free(pdVar26->its_name);\n            pdVar24 = pe_def_file;\n          }" if (parenthesized_expression "(pdVar26->its_name != (char *)0x0)" ( (binary_expression "pdVar26->its_name != (char *)0x0" (field_expression "pdVar26->its_name" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            free(pdVar26->its_name);\n            pdVar24 = pe_def_file;\n          }" { (expression_statement "free(pdVar26->its_name);" (call_expression "free(pdVar26->its_name)" identifier (argument_list "(pdVar26->its_name)" ( (field_expression "pdVar26->its_name" identifier -> field_identifier) ))) ;) (expression_statement "pdVar24 = pe_def_file;" (assignment_expression "pdVar24 = pe_def_file" identifier = identifier) ;) })) }))) (expression_statement "local_48 = (def_file *)((int)local_48 + 1);" (assignment_expression "local_48 = (def_file *)((int)local_48 + 1)" identifier = (cast_expression "(def_file *)((int)local_48 + 1)" ( (type_descriptor "def_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_48 + 1)" ( (binary_expression "(int)local_48 + 1" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pdVar26 = pdVar26 + 1;" (assignment_expression "pdVar26 = pdVar26 + 1" identifier = (binary_expression "pdVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)local_48 < pdVar24->num_exports)" ( (binary_expression "(int)local_48 < pdVar24->num_exports" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) < (field_expression "pdVar24->num_exports" identifier -> field_identifier)) )) ;) (expression_statement "iVar10 = iVar25 * 8;" (assignment_expression "iVar10 = iVar25 * 8" identifier = (binary_expression "iVar25 * 8" identifier * number_literal)) ;) (expression_statement "local_48 = pdVar24;" (assignment_expression "local_48 = pdVar24" identifier = identifier) ;) })))) (expression_statement "local_48->num_exports = iVar25;" (assignment_expression "local_48->num_exports = iVar25" (field_expression "local_48->num_exports" identifier -> field_identifier) = identifier) ;) (expression_statement "exported_symbol_offsets = (bfd_vma *)xmalloc(iVar10);" (assignment_expression "exported_symbol_offsets = (bfd_vma *)xmalloc(iVar10)" identifier = (cast_expression "(bfd_vma *)xmalloc(iVar10)" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar10)" identifier (argument_list "(iVar10)" ( identifier ))))) ;) (expression_statement "exported_symbol_sections = (bfd_section **)xmalloc(pe_def_file->num_exports << 2);" (assignment_expression "exported_symbol_sections = (bfd_section **)xmalloc(pe_def_file->num_exports << 2)" identifier = (cast_expression "(bfd_section **)xmalloc(pe_def_file->num_exports << 2)" ( (type_descriptor "bfd_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "xmalloc(pe_def_file->num_exports << 2)" identifier (argument_list "(pe_def_file->num_exports << 2)" ( (binary_expression "pe_def_file->num_exports << 2" (field_expression "pe_def_file->num_exports" identifier -> field_identifier) << number_literal) ))))) ;) (expression_statement "pdVar24 = pe_def_file;" (assignment_expression "pdVar24 = pe_def_file" identifier = identifier) ;) (expression_statement "memset(exported_symbol_sections,0,pe_def_file->num_exports * 4);" (call_expression "memset(exported_symbol_sections,0,pe_def_file->num_exports * 4)" identifier (argument_list "(exported_symbol_sections,0,pe_def_file->num_exports * 4)" ( identifier , number_literal , (binary_expression "pe_def_file->num_exports * 4" (field_expression "pe_def_file->num_exports" identifier -> field_identifier) * number_literal) ))) ;) (expression_statement "iVar10 = pdVar24->num_exports;" (assignment_expression "iVar10 = pdVar24->num_exports" identifier = (field_expression "pdVar24->num_exports" identifier -> field_identifier)) ;) (expression_statement "max_ordinal = 0;" (assignment_expression "max_ordinal = 0" identifier = number_literal) ;) (expression_statement "min_ordinal = 0x10000;" (assignment_expression "min_ordinal = 0x10000" identifier = number_literal) ;) (expression_statement "count_exported = 0;" (assignment_expression "count_exported = 0" identifier = number_literal) ;) (expression_statement "count_exported_byname = 0;" (assignment_expression "count_exported_byname = 0" identifier = number_literal) ;) (expression_statement "count_with_ordinals = 0;" (assignment_expression "count_with_ordinals = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar10) {\n      local_48 = (def_file *)0x0;\n      do {\n        pcVar11 = pdVar24->exports[(int)local_48].internal_name;\n        lang_add_gc_name(pcVar11);\n        sVar14 = strlen(pcVar11);\n        pcVar15 = (char *)xmalloc(sVar14 + 2);\n        if ((pe_details->underscored == 0) || (*pcVar11 == '@')) {\n          strcpy(pcVar15,pcVar11);\n        }\n        else {\n          *pcVar15 = '_';\n          strcpy(pcVar15 + 1,pcVar11);\n          pcVar20 = (char *)xstrdup(pcVar15);\n          lang_add_gc_name(pcVar20);\n        }\n        iVar10 = bfd_link_hash_lookup(info->hash,pcVar15,0,0,1);\n        pdVar24 = pe_def_file;\n        if (iVar10 == 0) {\n          pcVar20 = strchr(pcVar11,0x2e);\n          if (pcVar20 != (char *)0x0) {\nLAB_00067968:\n            pdVar24 = pe_def_file;\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            pdVar19->flag_forward = '\x01';\n            goto LAB_00067863;\n          }\n          pcVar20 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          pcVar20 = (char *)dcgettext(0,pcVar20,5);\n          einfo(pcVar20,pcVar11);\n          pdVar24 = pe_def_file;\n        }\n        else {\n          cVar29 = *(char *)(iVar10 + 0xc);\n          if ((cVar29 - 3U & 0xfd) == 0) {\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            if (cVar29 == '\x03') {\n              exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14);\n            }\n            else {\n              exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;\n            }\nLAB_00067863:\n            iVar10 = pdVar19->ordinal;\n            if (iVar10 != -1) {\n              if (max_ordinal < iVar10) {\n                max_ordinal = iVar10;\n              }\n              if (iVar10 < min_ordinal) {\n                min_ordinal = iVar10;\n              }\n              count_with_ordinals = count_with_ordinals + 1;\n            }\n          }\n          else {\n            pcVar20 = strchr(pcVar11,0x2e);\n            if (pcVar20 != (char *)0x0) goto LAB_00067968;\n            if (cVar29 == '\x01') {\n              pcVar20 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       );\n            einfo(pcVar20,pcVar11,cVar29,3);\n            pdVar24 = pe_def_file;\n          }\n        }\n        free(pcVar15);\n        local_48 = (def_file *)((int)local_48 + 1);\n        iVar10 = pdVar24->num_exports;\n      } while ((int)local_48 < iVar10);\n    }" if (parenthesized_expression "(0 < iVar10)" ( (binary_expression "0 < iVar10" number_literal < identifier) )) (compound_statement "{\n      local_48 = (def_file *)0x0;\n      do {\n        pcVar11 = pdVar24->exports[(int)local_48].internal_name;\n        lang_add_gc_name(pcVar11);\n        sVar14 = strlen(pcVar11);\n        pcVar15 = (char *)xmalloc(sVar14 + 2);\n        if ((pe_details->underscored == 0) || (*pcVar11 == '@')) {\n          strcpy(pcVar15,pcVar11);\n        }\n        else {\n          *pcVar15 = '_';\n          strcpy(pcVar15 + 1,pcVar11);\n          pcVar20 = (char *)xstrdup(pcVar15);\n          lang_add_gc_name(pcVar20);\n        }\n        iVar10 = bfd_link_hash_lookup(info->hash,pcVar15,0,0,1);\n        pdVar24 = pe_def_file;\n        if (iVar10 == 0) {\n          pcVar20 = strchr(pcVar11,0x2e);\n          if (pcVar20 != (char *)0x0) {\nLAB_00067968:\n            pdVar24 = pe_def_file;\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            pdVar19->flag_forward = '\x01';\n            goto LAB_00067863;\n          }\n          pcVar20 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          pcVar20 = (char *)dcgettext(0,pcVar20,5);\n          einfo(pcVar20,pcVar11);\n          pdVar24 = pe_def_file;\n        }\n        else {\n          cVar29 = *(char *)(iVar10 + 0xc);\n          if ((cVar29 - 3U & 0xfd) == 0) {\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            if (cVar29 == '\x03') {\n              exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14);\n            }\n            else {\n              exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;\n            }\nLAB_00067863:\n            iVar10 = pdVar19->ordinal;\n            if (iVar10 != -1) {\n              if (max_ordinal < iVar10) {\n                max_ordinal = iVar10;\n              }\n              if (iVar10 < min_ordinal) {\n                min_ordinal = iVar10;\n              }\n              count_with_ordinals = count_with_ordinals + 1;\n            }\n          }\n          else {\n            pcVar20 = strchr(pcVar11,0x2e);\n            if (pcVar20 != (char *)0x0) goto LAB_00067968;\n            if (cVar29 == '\x01') {\n              pcVar20 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       );\n            einfo(pcVar20,pcVar11,cVar29,3);\n            pdVar24 = pe_def_file;\n          }\n        }\n        free(pcVar15);\n        local_48 = (def_file *)((int)local_48 + 1);\n        iVar10 = pdVar24->num_exports;\n      } while ((int)local_48 < iVar10);\n    }" { (expression_statement "local_48 = (def_file *)0x0;" (assignment_expression "local_48 = (def_file *)0x0" identifier = (cast_expression "(def_file *)0x0" ( (type_descriptor "def_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        pcVar11 = pdVar24->exports[(int)local_48].internal_name;\n        lang_add_gc_name(pcVar11);\n        sVar14 = strlen(pcVar11);\n        pcVar15 = (char *)xmalloc(sVar14 + 2);\n        if ((pe_details->underscored == 0) || (*pcVar11 == '@')) {\n          strcpy(pcVar15,pcVar11);\n        }\n        else {\n          *pcVar15 = '_';\n          strcpy(pcVar15 + 1,pcVar11);\n          pcVar20 = (char *)xstrdup(pcVar15);\n          lang_add_gc_name(pcVar20);\n        }\n        iVar10 = bfd_link_hash_lookup(info->hash,pcVar15,0,0,1);\n        pdVar24 = pe_def_file;\n        if (iVar10 == 0) {\n          pcVar20 = strchr(pcVar11,0x2e);\n          if (pcVar20 != (char *)0x0) {\nLAB_00067968:\n            pdVar24 = pe_def_file;\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            pdVar19->flag_forward = '\x01';\n            goto LAB_00067863;\n          }\n          pcVar20 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          pcVar20 = (char *)dcgettext(0,pcVar20,5);\n          einfo(pcVar20,pcVar11);\n          pdVar24 = pe_def_file;\n        }\n        else {\n          cVar29 = *(char *)(iVar10 + 0xc);\n          if ((cVar29 - 3U & 0xfd) == 0) {\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            if (cVar29 == '\x03') {\n              exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14);\n            }\n            else {\n              exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;\n            }\nLAB_00067863:\n            iVar10 = pdVar19->ordinal;\n            if (iVar10 != -1) {\n              if (max_ordinal < iVar10) {\n                max_ordinal = iVar10;\n              }\n              if (iVar10 < min_ordinal) {\n                min_ordinal = iVar10;\n              }\n              count_with_ordinals = count_with_ordinals + 1;\n            }\n          }\n          else {\n            pcVar20 = strchr(pcVar11,0x2e);\n            if (pcVar20 != (char *)0x0) goto LAB_00067968;\n            if (cVar29 == '\x01') {\n              pcVar20 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       );\n            einfo(pcVar20,pcVar11,cVar29,3);\n            pdVar24 = pe_def_file;\n          }\n        }\n        free(pcVar15);\n        local_48 = (def_file *)((int)local_48 + 1);\n        iVar10 = pdVar24->num_exports;\n      } while ((int)local_48 < iVar10);" do (compound_statement "{\n        pcVar11 = pdVar24->exports[(int)local_48].internal_name;\n        lang_add_gc_name(pcVar11);\n        sVar14 = strlen(pcVar11);\n        pcVar15 = (char *)xmalloc(sVar14 + 2);\n        if ((pe_details->underscored == 0) || (*pcVar11 == '@')) {\n          strcpy(pcVar15,pcVar11);\n        }\n        else {\n          *pcVar15 = '_';\n          strcpy(pcVar15 + 1,pcVar11);\n          pcVar20 = (char *)xstrdup(pcVar15);\n          lang_add_gc_name(pcVar20);\n        }\n        iVar10 = bfd_link_hash_lookup(info->hash,pcVar15,0,0,1);\n        pdVar24 = pe_def_file;\n        if (iVar10 == 0) {\n          pcVar20 = strchr(pcVar11,0x2e);\n          if (pcVar20 != (char *)0x0) {\nLAB_00067968:\n            pdVar24 = pe_def_file;\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            pdVar19->flag_forward = '\x01';\n            goto LAB_00067863;\n          }\n          pcVar20 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          pcVar20 = (char *)dcgettext(0,pcVar20,5);\n          einfo(pcVar20,pcVar11);\n          pdVar24 = pe_def_file;\n        }\n        else {\n          cVar29 = *(char *)(iVar10 + 0xc);\n          if ((cVar29 - 3U & 0xfd) == 0) {\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            if (cVar29 == '\x03') {\n              exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14);\n            }\n            else {\n              exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;\n            }\nLAB_00067863:\n            iVar10 = pdVar19->ordinal;\n            if (iVar10 != -1) {\n              if (max_ordinal < iVar10) {\n                max_ordinal = iVar10;\n              }\n              if (iVar10 < min_ordinal) {\n                min_ordinal = iVar10;\n              }\n              count_with_ordinals = count_with_ordinals + 1;\n            }\n          }\n          else {\n            pcVar20 = strchr(pcVar11,0x2e);\n            if (pcVar20 != (char *)0x0) goto LAB_00067968;\n            if (cVar29 == '\x01') {\n              pcVar20 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       );\n            einfo(pcVar20,pcVar11,cVar29,3);\n            pdVar24 = pe_def_file;\n          }\n        }\n        free(pcVar15);\n        local_48 = (def_file *)((int)local_48 + 1);\n        iVar10 = pdVar24->num_exports;\n      }" { (expression_statement "pcVar11 = pdVar24->exports[(int)local_48].internal_name;" (assignment_expression "pcVar11 = pdVar24->exports[(int)local_48].internal_name" identifier = (field_expression "pdVar24->exports[(int)local_48].internal_name" (subscript_expression "pdVar24->exports[(int)local_48]" (field_expression "pdVar24->exports" identifier -> field_identifier) [ (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier)) ;) (expression_statement "lang_add_gc_name(pcVar11);" (call_expression "lang_add_gc_name(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;) (expression_statement "sVar14 = strlen(pcVar11);" (assignment_expression "sVar14 = strlen(pcVar11)" identifier = (call_expression "strlen(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier )))) ;) (expression_statement "pcVar15 = (char *)xmalloc(sVar14 + 2);" (assignment_expression "pcVar15 = (char *)xmalloc(sVar14 + 2)" identifier = (cast_expression "(char *)xmalloc(sVar14 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar14 + 2)" identifier (argument_list "(sVar14 + 2)" ( (binary_expression "sVar14 + 2" identifier + number_literal) ))))) ;) (if_statement "if ((pe_details->underscored == 0) || (*pcVar11 == '@')) {\n          strcpy(pcVar15,pcVar11);\n        }\n        else {\n          *pcVar15 = '_';\n          strcpy(pcVar15 + 1,pcVar11);\n          pcVar20 = (char *)xstrdup(pcVar15);\n          lang_add_gc_name(pcVar20);\n        }" if (parenthesized_expression "((pe_details->underscored == 0) || (*pcVar11 == '@'))" ( (binary_expression "(pe_details->underscored == 0) || (*pcVar11 == '@')" (parenthesized_expression "(pe_details->underscored == 0)" ( (binary_expression "pe_details->underscored == 0" (field_expression "pe_details->underscored" identifier -> field_identifier) == number_literal) )) || (parenthesized_expression "(*pcVar11 == '@')" ( (binary_expression "*pcVar11 == '@'" (pointer_expression "*pcVar11" * identifier) == (char_literal "'@'" ' character ')) ))) )) (compound_statement "{\n          strcpy(pcVar15,pcVar11);\n        }" { (expression_statement "strcpy(pcVar15,pcVar11);" (call_expression "strcpy(pcVar15,pcVar11)" identifier (argument_list "(pcVar15,pcVar11)" ( identifier , identifier ))) ;) }) (else_clause "else {\n          *pcVar15 = '_';\n          strcpy(pcVar15 + 1,pcVar11);\n          pcVar20 = (char *)xstrdup(pcVar15);\n          lang_add_gc_name(pcVar20);\n        }" else (compound_statement "{\n          *pcVar15 = '_';\n          strcpy(pcVar15 + 1,pcVar11);\n          pcVar20 = (char *)xstrdup(pcVar15);\n          lang_add_gc_name(pcVar20);\n        }" { (expression_statement "*pcVar15 = '_';" (assignment_expression "*pcVar15 = '_'" (pointer_expression "*pcVar15" * identifier) = (char_literal "'_'" ' character ')) ;) (expression_statement "strcpy(pcVar15 + 1,pcVar11);" (call_expression "strcpy(pcVar15 + 1,pcVar11)" identifier (argument_list "(pcVar15 + 1,pcVar11)" ( (binary_expression "pcVar15 + 1" identifier + number_literal) , identifier ))) ;) (expression_statement "pcVar20 = (char *)xstrdup(pcVar15);" (assignment_expression "pcVar20 = (char *)xstrdup(pcVar15)" identifier = (cast_expression "(char *)xstrdup(pcVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier ))))) ;) (expression_statement "lang_add_gc_name(pcVar20);" (call_expression "lang_add_gc_name(pcVar20)" identifier (argument_list "(pcVar20)" ( identifier ))) ;) }))) (expression_statement "iVar10 = bfd_link_hash_lookup(info->hash,pcVar15,0,0,1);" (assignment_expression "iVar10 = bfd_link_hash_lookup(info->hash,pcVar15,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(info->hash,pcVar15,0,0,1)" identifier (argument_list "(info->hash,pcVar15,0,0,1)" ( (field_expression "info->hash" identifier -> field_identifier) , identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "pdVar24 = pe_def_file;" (assignment_expression "pdVar24 = pe_def_file" identifier = identifier) ;) (if_statement "if (iVar10 == 0) {\n          pcVar20 = strchr(pcVar11,0x2e);\n          if (pcVar20 != (char *)0x0) {\nLAB_00067968:\n            pdVar24 = pe_def_file;\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            pdVar19->flag_forward = '\x01';\n            goto LAB_00067863;\n          }\n          pcVar20 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          pcVar20 = (char *)dcgettext(0,pcVar20,5);\n          einfo(pcVar20,pcVar11);\n          pdVar24 = pe_def_file;\n        }\n        else {\n          cVar29 = *(char *)(iVar10 + 0xc);\n          if ((cVar29 - 3U & 0xfd) == 0) {\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            if (cVar29 == '\x03') {\n              exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14);\n            }\n            else {\n              exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;\n            }\nLAB_00067863:\n            iVar10 = pdVar19->ordinal;\n            if (iVar10 != -1) {\n              if (max_ordinal < iVar10) {\n                max_ordinal = iVar10;\n              }\n              if (iVar10 < min_ordinal) {\n                min_ordinal = iVar10;\n              }\n              count_with_ordinals = count_with_ordinals + 1;\n            }\n          }\n          else {\n            pcVar20 = strchr(pcVar11,0x2e);\n            if (pcVar20 != (char *)0x0) goto LAB_00067968;\n            if (cVar29 == '\x01') {\n              pcVar20 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       );\n            einfo(pcVar20,pcVar11,cVar29,3);\n            pdVar24 = pe_def_file;\n          }\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar20 = strchr(pcVar11,0x2e);\n          if (pcVar20 != (char *)0x0) {\nLAB_00067968:\n            pdVar24 = pe_def_file;\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            pdVar19->flag_forward = '\x01';\n            goto LAB_00067863;\n          }\n          pcVar20 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          pcVar20 = (char *)dcgettext(0,pcVar20,5);\n          einfo(pcVar20,pcVar11);\n          pdVar24 = pe_def_file;\n        }" { (expression_statement "pcVar20 = strchr(pcVar11,0x2e);" (assignment_expression "pcVar20 = strchr(pcVar11,0x2e)" identifier = (call_expression "strchr(pcVar11,0x2e)" identifier (argument_list "(pcVar11,0x2e)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar20 != (char *)0x0) {\nLAB_00067968:\n            pdVar24 = pe_def_file;\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            pdVar19->flag_forward = '\x01';\n            goto LAB_00067863;\n          }" if (parenthesized_expression "(pcVar20 != (char *)0x0)" ( (binary_expression "pcVar20 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00067968:\n            pdVar24 = pe_def_file;\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            pdVar19->flag_forward = '\x01';\n            goto LAB_00067863;\n          }" { (labeled_statement "LAB_00067968:\n            pdVar24 = pe_def_file;" statement_identifier : (expression_statement "pdVar24 = pe_def_file;" (assignment_expression "pdVar24 = pe_def_file" identifier = identifier) ;)) (expression_statement "count_exported = count_exported + 1;" (assignment_expression "count_exported = count_exported + 1" identifier = (binary_expression "count_exported + 1" identifier + number_literal)) ;) (expression_statement "pdVar19 = pe_def_file->exports + (int)local_48;" (assignment_expression "pdVar19 = pe_def_file->exports + (int)local_48" identifier = (binary_expression "pe_def_file->exports + (int)local_48" (field_expression "pe_def_file->exports" identifier -> field_identifier) + (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }" if (parenthesized_expression "(pdVar19->flag_noname == '\0')" ( (binary_expression "pdVar19->flag_noname == '\0'" (field_expression "pdVar19->flag_noname" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              count_exported_byname = count_exported_byname + 1;\n            }" { (expression_statement "count_exported_byname = count_exported_byname + 1;" (assignment_expression "count_exported_byname = count_exported_byname + 1" identifier = (binary_expression "count_exported_byname + 1" identifier + number_literal)) ;) })) (expression_statement "pdVar19->flag_forward = '\x01';" (assignment_expression "pdVar19->flag_forward = '\x01'" (field_expression "pdVar19->flag_forward" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (goto_statement "goto LAB_00067863;" goto statement_identifier ;) })) (expression_statement "pcVar20 = "%X%P: cannot export %s: symbol not found\n";" (assignment_expression "pcVar20 = "%X%P: cannot export %s: symbol not found\n"" identifier = (string_literal ""%X%P: cannot export %s: symbol not found\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_000679ab:\n          pcVar20 = (char *)dcgettext(0,pcVar20,5);" statement_identifier : (expression_statement "pcVar20 = (char *)dcgettext(0,pcVar20,5);" (assignment_expression "pcVar20 = (char *)dcgettext(0,pcVar20,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar20,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar20,5)" identifier (argument_list "(0,pcVar20,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "einfo(pcVar20,pcVar11);" (call_expression "einfo(pcVar20,pcVar11)" identifier (argument_list "(pcVar20,pcVar11)" ( identifier , identifier ))) ;) (expression_statement "pdVar24 = pe_def_file;" (assignment_expression "pdVar24 = pe_def_file" identifier = identifier) ;) }) (else_clause "else {\n          cVar29 = *(char *)(iVar10 + 0xc);\n          if ((cVar29 - 3U & 0xfd) == 0) {\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            if (cVar29 == '\x03') {\n              exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14);\n            }\n            else {\n              exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;\n            }\nLAB_00067863:\n            iVar10 = pdVar19->ordinal;\n            if (iVar10 != -1) {\n              if (max_ordinal < iVar10) {\n                max_ordinal = iVar10;\n              }\n              if (iVar10 < min_ordinal) {\n                min_ordinal = iVar10;\n              }\n              count_with_ordinals = count_with_ordinals + 1;\n            }\n          }\n          else {\n            pcVar20 = strchr(pcVar11,0x2e);\n            if (pcVar20 != (char *)0x0) goto LAB_00067968;\n            if (cVar29 == '\x01') {\n              pcVar20 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       );\n            einfo(pcVar20,pcVar11,cVar29,3);\n            pdVar24 = pe_def_file;\n          }\n        }" else (compound_statement "{\n          cVar29 = *(char *)(iVar10 + 0xc);\n          if ((cVar29 - 3U & 0xfd) == 0) {\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            if (cVar29 == '\x03') {\n              exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14);\n            }\n            else {\n              exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;\n            }\nLAB_00067863:\n            iVar10 = pdVar19->ordinal;\n            if (iVar10 != -1) {\n              if (max_ordinal < iVar10) {\n                max_ordinal = iVar10;\n              }\n              if (iVar10 < min_ordinal) {\n                min_ordinal = iVar10;\n              }\n              count_with_ordinals = count_with_ordinals + 1;\n            }\n          }\n          else {\n            pcVar20 = strchr(pcVar11,0x2e);\n            if (pcVar20 != (char *)0x0) goto LAB_00067968;\n            if (cVar29 == '\x01') {\n              pcVar20 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       );\n            einfo(pcVar20,pcVar11,cVar29,3);\n            pdVar24 = pe_def_file;\n          }\n        }" { (expression_statement "cVar29 = *(char *)(iVar10 + 0xc);" (assignment_expression "cVar29 = *(char *)(iVar10 + 0xc)" identifier = (pointer_expression "*(char *)(iVar10 + 0xc)" * (cast_expression "(char *)(iVar10 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((cVar29 - 3U & 0xfd) == 0) {\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            if (cVar29 == '\x03') {\n              exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14);\n            }\n            else {\n              exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;\n            }\nLAB_00067863:\n            iVar10 = pdVar19->ordinal;\n            if (iVar10 != -1) {\n              if (max_ordinal < iVar10) {\n                max_ordinal = iVar10;\n              }\n              if (iVar10 < min_ordinal) {\n                min_ordinal = iVar10;\n              }\n              count_with_ordinals = count_with_ordinals + 1;\n            }\n          }\n          else {\n            pcVar20 = strchr(pcVar11,0x2e);\n            if (pcVar20 != (char *)0x0) goto LAB_00067968;\n            if (cVar29 == '\x01') {\n              pcVar20 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       );\n            einfo(pcVar20,pcVar11,cVar29,3);\n            pdVar24 = pe_def_file;\n          }" if (parenthesized_expression "((cVar29 - 3U & 0xfd) == 0)" ( (binary_expression "(cVar29 - 3U & 0xfd) == 0" (parenthesized_expression "(cVar29 - 3U & 0xfd)" ( (binary_expression "cVar29 - 3U & 0xfd" (binary_expression "cVar29 - 3U" identifier - number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n            count_exported = count_exported + 1;\n            pdVar19 = pe_def_file->exports + (int)local_48;\n            if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }\n            if (cVar29 == '\x03') {\n              exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14);\n            }\n            else {\n              exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;\n            }\nLAB_00067863:\n            iVar10 = pdVar19->ordinal;\n            if (iVar10 != -1) {\n              if (max_ordinal < iVar10) {\n                max_ordinal = iVar10;\n              }\n              if (iVar10 < min_ordinal) {\n                min_ordinal = iVar10;\n              }\n              count_with_ordinals = count_with_ordinals + 1;\n            }\n          }" { (expression_statement "count_exported = count_exported + 1;" (assignment_expression "count_exported = count_exported + 1" identifier = (binary_expression "count_exported + 1" identifier + number_literal)) ;) (expression_statement "pdVar19 = pe_def_file->exports + (int)local_48;" (assignment_expression "pdVar19 = pe_def_file->exports + (int)local_48" identifier = (binary_expression "pe_def_file->exports + (int)local_48" (field_expression "pe_def_file->exports" identifier -> field_identifier) + (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (pdVar19->flag_noname == '\0') {\n              count_exported_byname = count_exported_byname + 1;\n            }" if (parenthesized_expression "(pdVar19->flag_noname == '\0')" ( (binary_expression "pdVar19->flag_noname == '\0'" (field_expression "pdVar19->flag_noname" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              count_exported_byname = count_exported_byname + 1;\n            }" { (expression_statement "count_exported_byname = count_exported_byname + 1;" (assignment_expression "count_exported_byname = count_exported_byname + 1" identifier = (binary_expression "count_exported_byname + 1" identifier + number_literal)) ;) })) (if_statement "if (cVar29 == '\x03') {\n              exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14);\n            }\n            else {\n              exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;\n            }" if (parenthesized_expression "(cVar29 == '\x03')" ( (binary_expression "cVar29 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n              exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14);\n            }" { (expression_statement "exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14);" (assignment_expression "exported_symbol_sections[(int)local_48] = *(bfd_section **)(iVar10 + 0x14)" (subscript_expression "exported_symbol_sections[(int)local_48]" identifier [ (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (pointer_expression "*(bfd_section **)(iVar10 + 0x14)" * (cast_expression "(bfd_section **)(iVar10 + 0x14)" ( (type_descriptor "bfd_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;\n            }" else (compound_statement "{\n              exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;\n            }" { (expression_statement "exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id;" (assignment_expression "exported_symbol_sections[(int)local_48] =\n                   (bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id" (subscript_expression "exported_symbol_sections[(int)local_48]" identifier [ (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (cast_expression "(bfd_section *)(*(bfd_section **)(iVar10 + 0x14))->id" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(*(bfd_section **)(iVar10 + 0x14))->id" (parenthesized_expression "(*(bfd_section **)(iVar10 + 0x14))" ( (pointer_expression "*(bfd_section **)(iVar10 + 0x14)" * (cast_expression "(bfd_section **)(iVar10 + 0x14)" ( (type_descriptor "bfd_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) )) -> field_identifier))) ;) }))) (labeled_statement "LAB_00067863:\n            iVar10 = pdVar19->ordinal;" statement_identifier : (expression_statement "iVar10 = pdVar19->ordinal;" (assignment_expression "iVar10 = pdVar19->ordinal" identifier = (field_expression "pdVar19->ordinal" identifier -> field_identifier)) ;)) (if_statement "if (iVar10 != -1) {\n              if (max_ordinal < iVar10) {\n                max_ordinal = iVar10;\n              }\n              if (iVar10 < min_ordinal) {\n                min_ordinal = iVar10;\n              }\n              count_with_ordinals = count_with_ordinals + 1;\n            }" if (parenthesized_expression "(iVar10 != -1)" ( (binary_expression "iVar10 != -1" identifier != number_literal) )) (compound_statement "{\n              if (max_ordinal < iVar10) {\n                max_ordinal = iVar10;\n              }\n              if (iVar10 < min_ordinal) {\n                min_ordinal = iVar10;\n              }\n              count_with_ordinals = count_with_ordinals + 1;\n            }" { (if_statement "if (max_ordinal < iVar10) {\n                max_ordinal = iVar10;\n              }" if (parenthesized_expression "(max_ordinal < iVar10)" ( (binary_expression "max_ordinal < iVar10" identifier < identifier) )) (compound_statement "{\n                max_ordinal = iVar10;\n              }" { (expression_statement "max_ordinal = iVar10;" (assignment_expression "max_ordinal = iVar10" identifier = identifier) ;) })) (if_statement "if (iVar10 < min_ordinal) {\n                min_ordinal = iVar10;\n              }" if (parenthesized_expression "(iVar10 < min_ordinal)" ( (binary_expression "iVar10 < min_ordinal" identifier < identifier) )) (compound_statement "{\n                min_ordinal = iVar10;\n              }" { (expression_statement "min_ordinal = iVar10;" (assignment_expression "min_ordinal = iVar10" identifier = identifier) ;) })) (expression_statement "count_with_ordinals = count_with_ordinals + 1;" (assignment_expression "count_with_ordinals = count_with_ordinals + 1" identifier = (binary_expression "count_with_ordinals + 1" identifier + number_literal)) ;) })) }) (else_clause "else {\n            pcVar20 = strchr(pcVar11,0x2e);\n            if (pcVar20 != (char *)0x0) goto LAB_00067968;\n            if (cVar29 == '\x01') {\n              pcVar20 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       );\n            einfo(pcVar20,pcVar11,cVar29,3);\n            pdVar24 = pe_def_file;\n          }" else (compound_statement "{\n            pcVar20 = strchr(pcVar11,0x2e);\n            if (pcVar20 != (char *)0x0) goto LAB_00067968;\n            if (cVar29 == '\x01') {\n              pcVar20 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       );\n            einfo(pcVar20,pcVar11,cVar29,3);\n            pdVar24 = pe_def_file;\n          }" { (expression_statement "pcVar20 = strchr(pcVar11,0x2e);" (assignment_expression "pcVar20 = strchr(pcVar11,0x2e)" identifier = (call_expression "strchr(pcVar11,0x2e)" identifier (argument_list "(pcVar11,0x2e)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar20 != (char *)0x0) goto LAB_00067968;" if (parenthesized_expression "(pcVar20 != (char *)0x0)" ( (binary_expression "pcVar20 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00067968;" goto statement_identifier ;)) (if_statement "if (cVar29 == '\x01') {\n              pcVar20 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }" if (parenthesized_expression "(cVar29 == '\x01')" ( (binary_expression "cVar29 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n              pcVar20 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }" { (expression_statement "pcVar20 = "%X%P: cannot export %s: symbol not defined\n";" (assignment_expression "pcVar20 = "%X%P: cannot export %s: symbol not defined\n"" identifier = (string_literal ""%X%P: cannot export %s: symbol not defined\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_000679ab;" goto statement_identifier ;) })) (expression_statement "pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       );" (assignment_expression "pcVar20 = (char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       )" identifier = (cast_expression "(char *)dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       )" identifier (argument_list "(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5\n                                       )" ( number_literal , (string_literal ""%X%P: cannot export %s: symbol wrong type (%d vs %d)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar20,pcVar11,cVar29,3);" (call_expression "einfo(pcVar20,pcVar11,cVar29,3)" identifier (argument_list "(pcVar20,pcVar11,cVar29,3)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "pdVar24 = pe_def_file;" (assignment_expression "pdVar24 = pe_def_file" identifier = identifier) ;) }))) }))) (expression_statement "free(pcVar15);" (call_expression "free(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier ))) ;) (expression_statement "local_48 = (def_file *)((int)local_48 + 1);" (assignment_expression "local_48 = (def_file *)((int)local_48 + 1)" identifier = (cast_expression "(def_file *)((int)local_48 + 1)" ( (type_descriptor "def_file *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_48 + 1)" ( (binary_expression "(int)local_48 + 1" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar10 = pdVar24->num_exports;" (assignment_expression "iVar10 = pdVar24->num_exports" identifier = (field_expression "pdVar24->num_exports" identifier -> field_identifier)) ;) }) while (parenthesized_expression "((int)local_48 < iVar10)" ( (binary_expression "(int)local_48 < iVar10" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })) (labeled_statement "joined_r0x00067b8d:\n    if (iVar10 == 0) {\nLAB_0006736e:\n      bVar9 = *(byte *)info;\n      goto LAB_00067375;\n    }" statement_identifier : (if_statement "if (iVar10 == 0) {\nLAB_0006736e:\n      bVar9 = *(byte *)info;\n      goto LAB_00067375;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0006736e:\n      bVar9 = *(byte *)info;\n      goto LAB_00067375;\n    }" { (labeled_statement "LAB_0006736e:\n      bVar9 = *(byte *)info;" statement_identifier : (expression_statement "bVar9 = *(byte *)info;" (assignment_expression "bVar9 = *(byte *)info" identifier = (pointer_expression "*(byte *)info" * (cast_expression "(byte *)info" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (goto_statement "goto LAB_00067375;" goto statement_identifier ;) }))) }))) (expression_statement "dll_name = pdVar24->name;" (assignment_expression "dll_name = pdVar24->name" identifier = (field_expression "pdVar24->name" identifier -> field_identifier)) ;) (if_statement "if (dll_name == (char *)0x0) {\n    dll_name = abfd->filename;\n    cVar29 = *dll_name;\n    if (cVar29 != '\0') {\n      bVar33 = false;\n      pcVar15 = dll_name;\n      pcVar11 = dll_name;\n      do {\n        bVar32 = cVar29 == '\\';\n        bVar34 = cVar29 == '/';\n        bVar35 = cVar29 == ':';\n        pcVar15 = pcVar15 + 1;\n        cVar29 = *pcVar15;\n        if ((bVar32 || bVar34) || bVar35) {\n          bVar33 = (bVar32 || bVar34) || bVar35;\n          pcVar11 = pcVar15;\n        }\n      } while (cVar29 != '\0');\n      if (bVar33) {\n        dll_name = pcVar11;\n      }\n    }\n  }" if (parenthesized_expression "(dll_name == (char *)0x0)" ( (binary_expression "dll_name == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    dll_name = abfd->filename;\n    cVar29 = *dll_name;\n    if (cVar29 != '\0') {\n      bVar33 = false;\n      pcVar15 = dll_name;\n      pcVar11 = dll_name;\n      do {\n        bVar32 = cVar29 == '\\';\n        bVar34 = cVar29 == '/';\n        bVar35 = cVar29 == ':';\n        pcVar15 = pcVar15 + 1;\n        cVar29 = *pcVar15;\n        if ((bVar32 || bVar34) || bVar35) {\n          bVar33 = (bVar32 || bVar34) || bVar35;\n          pcVar11 = pcVar15;\n        }\n      } while (cVar29 != '\0');\n      if (bVar33) {\n        dll_name = pcVar11;\n      }\n    }\n  }" { (expression_statement "dll_name = abfd->filename;" (assignment_expression "dll_name = abfd->filename" identifier = (field_expression "abfd->filename" identifier -> field_identifier)) ;) (expression_statement "cVar29 = *dll_name;" (assignment_expression "cVar29 = *dll_name" identifier = (pointer_expression "*dll_name" * identifier)) ;) (if_statement "if (cVar29 != '\0') {\n      bVar33 = false;\n      pcVar15 = dll_name;\n      pcVar11 = dll_name;\n      do {\n        bVar32 = cVar29 == '\\';\n        bVar34 = cVar29 == '/';\n        bVar35 = cVar29 == ':';\n        pcVar15 = pcVar15 + 1;\n        cVar29 = *pcVar15;\n        if ((bVar32 || bVar34) || bVar35) {\n          bVar33 = (bVar32 || bVar34) || bVar35;\n          pcVar11 = pcVar15;\n        }\n      } while (cVar29 != '\0');\n      if (bVar33) {\n        dll_name = pcVar11;\n      }\n    }" if (parenthesized_expression "(cVar29 != '\0')" ( (binary_expression "cVar29 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      bVar33 = false;\n      pcVar15 = dll_name;\n      pcVar11 = dll_name;\n      do {\n        bVar32 = cVar29 == '\\';\n        bVar34 = cVar29 == '/';\n        bVar35 = cVar29 == ':';\n        pcVar15 = pcVar15 + 1;\n        cVar29 = *pcVar15;\n        if ((bVar32 || bVar34) || bVar35) {\n          bVar33 = (bVar32 || bVar34) || bVar35;\n          pcVar11 = pcVar15;\n        }\n      } while (cVar29 != '\0');\n      if (bVar33) {\n        dll_name = pcVar11;\n      }\n    }" { (expression_statement "bVar33 = false;" (assignment_expression "bVar33 = false" identifier = false) ;) (expression_statement "pcVar15 = dll_name;" (assignment_expression "pcVar15 = dll_name" identifier = identifier) ;) (expression_statement "pcVar11 = dll_name;" (assignment_expression "pcVar11 = dll_name" identifier = identifier) ;) (do_statement "do {\n        bVar32 = cVar29 == '\\';\n        bVar34 = cVar29 == '/';\n        bVar35 = cVar29 == ':';\n        pcVar15 = pcVar15 + 1;\n        cVar29 = *pcVar15;\n        if ((bVar32 || bVar34) || bVar35) {\n          bVar33 = (bVar32 || bVar34) || bVar35;\n          pcVar11 = pcVar15;\n        }\n      } while (cVar29 != '\0');" do (compound_statement "{\n        bVar32 = cVar29 == '\\';\n        bVar34 = cVar29 == '/';\n        bVar35 = cVar29 == ':';\n        pcVar15 = pcVar15 + 1;\n        cVar29 = *pcVar15;\n        if ((bVar32 || bVar34) || bVar35) {\n          bVar33 = (bVar32 || bVar34) || bVar35;\n          pcVar11 = pcVar15;\n        }\n      }" { (expression_statement "bVar32 = cVar29 == '\\';" (assignment_expression "bVar32 = cVar29 == '\\'" identifier = (binary_expression "cVar29 == '\\'" identifier == (char_literal "'\\'" ' escape_sequence '))) ;) (expression_statement "bVar34 = cVar29 == '/';" (assignment_expression "bVar34 = cVar29 == '/'" identifier = (binary_expression "cVar29 == '/'" identifier == (char_literal "'/'" ' character '))) ;) (expression_statement "bVar35 = cVar29 == ':';" (assignment_expression "bVar35 = cVar29 == ':'" identifier = (binary_expression "cVar29 == ':'" identifier == (char_literal "':'" ' character '))) ;) (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) (expression_statement "cVar29 = *pcVar15;" (assignment_expression "cVar29 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (if_statement "if ((bVar32 || bVar34) || bVar35) {\n          bVar33 = (bVar32 || bVar34) || bVar35;\n          pcVar11 = pcVar15;\n        }" if (parenthesized_expression "((bVar32 || bVar34) || bVar35)" ( (binary_expression "(bVar32 || bVar34) || bVar35" (parenthesized_expression "(bVar32 || bVar34)" ( (binary_expression "bVar32 || bVar34" identifier || identifier) )) || identifier) )) (compound_statement "{\n          bVar33 = (bVar32 || bVar34) || bVar35;\n          pcVar11 = pcVar15;\n        }" { (expression_statement "bVar33 = (bVar32 || bVar34) || bVar35;" (assignment_expression "bVar33 = (bVar32 || bVar34) || bVar35" identifier = (binary_expression "(bVar32 || bVar34) || bVar35" (parenthesized_expression "(bVar32 || bVar34)" ( (binary_expression "bVar32 || bVar34" identifier || identifier) )) || identifier)) ;) (expression_statement "pcVar11 = pcVar15;" (assignment_expression "pcVar11 = pcVar15" identifier = identifier) ;) })) }) while (parenthesized_expression "(cVar29 != '\0')" ( (binary_expression "cVar29 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (bVar33) {\n        dll_name = pcVar11;\n      }" if (parenthesized_expression "(bVar33)" ( identifier )) (compound_statement "{\n        dll_name = pcVar11;\n      }" { (expression_statement "dll_name = pcVar11;" (assignment_expression "dll_name = pcVar11" identifier = identifier) ;) })) })) })) (if_statement "if ((count_with_ordinals == 0) || (max_ordinal <= count_exported)) {\n    min_ordinal = 1;\n    max_ordinal = count_exported;\n  }\n  else {\n    iVar10 = (max_ordinal - count_exported) + 1;\n    if (iVar10 < min_ordinal) {\n      min_ordinal = iVar10;\n    }\n  }" if (parenthesized_expression "((count_with_ordinals == 0) || (max_ordinal <= count_exported))" ( (binary_expression "(count_with_ordinals == 0) || (max_ordinal <= count_exported)" (parenthesized_expression "(count_with_ordinals == 0)" ( (binary_expression "count_with_ordinals == 0" identifier == number_literal) )) || (parenthesized_expression "(max_ordinal <= count_exported)" ( (binary_expression "max_ordinal <= count_exported" identifier <= identifier) ))) )) (compound_statement "{\n    min_ordinal = 1;\n    max_ordinal = count_exported;\n  }" { (expression_statement "min_ordinal = 1;" (assignment_expression "min_ordinal = 1" identifier = number_literal) ;) (expression_statement "max_ordinal = count_exported;" (assignment_expression "max_ordinal = count_exported" identifier = identifier) ;) }) (else_clause "else {\n    iVar10 = (max_ordinal - count_exported) + 1;\n    if (iVar10 < min_ordinal) {\n      min_ordinal = iVar10;\n    }\n  }" else (compound_statement "{\n    iVar10 = (max_ordinal - count_exported) + 1;\n    if (iVar10 < min_ordinal) {\n      min_ordinal = iVar10;\n    }\n  }" { (expression_statement "iVar10 = (max_ordinal - count_exported) + 1;" (assignment_expression "iVar10 = (max_ordinal - count_exported) + 1" identifier = (binary_expression "(max_ordinal - count_exported) + 1" (parenthesized_expression "(max_ordinal - count_exported)" ( (binary_expression "max_ordinal - count_exported" identifier - identifier) )) + number_literal)) ;) (if_statement "if (iVar10 < min_ordinal) {\n      min_ordinal = iVar10;\n    }" if (parenthesized_expression "(iVar10 < min_ordinal)" ( (binary_expression "iVar10 < min_ordinal" identifier < identifier) )) (compound_statement "{\n      min_ordinal = iVar10;\n    }" { (expression_statement "min_ordinal = iVar10;" (assignment_expression "min_ordinal = iVar10" identifier = identifier) ;) })) }))) (expression_statement "export_table_size = (max_ordinal - min_ordinal) + 1;" (assignment_expression "export_table_size = (max_ordinal - min_ordinal) + 1" identifier = (binary_expression "(max_ordinal - min_ordinal) + 1" (parenthesized_expression "(max_ordinal - min_ordinal)" ( (binary_expression "max_ordinal - min_ordinal" identifier - identifier) )) + number_literal)) ;) (expression_statement "piVar18 = (int *)xmalloc(export_table_size * 4);" (assignment_expression "piVar18 = (int *)xmalloc(export_table_size * 4)" identifier = (cast_expression "(int *)xmalloc(export_table_size * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(export_table_size * 4)" identifier (argument_list "(export_table_size * 4)" ( (binary_expression "export_table_size * 4" identifier * number_literal) ))))) ;) (expression_statement "piVar23 = piVar18 + export_table_size;" (assignment_expression "piVar23 = piVar18 + export_table_size" identifier = (binary_expression "piVar18 + export_table_size" identifier + identifier)) ;) (expression_statement "exported_symbols = piVar18;" (assignment_expression "exported_symbols = piVar18" identifier = identifier) ;) (if_statement "if (0 < export_table_size) {\n    do {\n      *piVar18 = -1;\n      piVar18 = piVar18 + 1;\n    } while (piVar23 != piVar18);\n  }" if (parenthesized_expression "(0 < export_table_size)" ( (binary_expression "0 < export_table_size" number_literal < identifier) )) (compound_statement "{\n    do {\n      *piVar18 = -1;\n      piVar18 = piVar18 + 1;\n    } while (piVar23 != piVar18);\n  }" { (do_statement "do {\n      *piVar18 = -1;\n      piVar18 = piVar18 + 1;\n    } while (piVar23 != piVar18);" do (compound_statement "{\n      *piVar18 = -1;\n      piVar18 = piVar18 + 1;\n    }" { (expression_statement "*piVar18 = -1;" (assignment_expression "*piVar18 = -1" (pointer_expression "*piVar18" * identifier) = number_literal) ;) (expression_statement "piVar18 = piVar18 + 1;" (assignment_expression "piVar18 = piVar18 + 1" identifier = (binary_expression "piVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar23 != piVar18)" ( (binary_expression "piVar23 != piVar18" identifier != identifier) )) ;) })) (expression_statement "local_48 = pe_def_file;" (assignment_expression "local_48 = pe_def_file" identifier = identifier) ;) (expression_statement "local_3c = min_ordinal;" (assignment_expression "local_3c = min_ordinal" identifier = identifier) ;) (if_statement "if (pe_def_file->num_exports < 1) {\n    local_44 = (bfd *)0x0;\n    iVar10 = min_ordinal;\n    goto LAB_00067580;\n  }" if (parenthesized_expression "(pe_def_file->num_exports < 1)" ( (binary_expression "pe_def_file->num_exports < 1" (field_expression "pe_def_file->num_exports" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n    local_44 = (bfd *)0x0;\n    iVar10 = min_ordinal;\n    goto LAB_00067580;\n  }" { (expression_statement "local_44 = (bfd *)0x0;" (assignment_expression "local_44 = (bfd *)0x0" identifier = (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar10 = min_ordinal;" (assignment_expression "iVar10 = min_ordinal" identifier = identifier) ;) (goto_statement "goto LAB_00067580;" goto statement_identifier ;) })) (expression_statement "local_44 = (bfd *)0x0;" (assignment_expression "local_44 = (bfd *)0x0" identifier = (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_40 = (char *)0x0;" (assignment_expression "local_40 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pdVar19 = pe_def_file->exports;" (assignment_expression "pdVar19 = pe_def_file->exports" identifier = (field_expression "pe_def_file->exports" identifier -> field_identifier)) ;) (do_statement "do {\n    pdVar26 = pdVar19 + (int)local_40;\n    if ((exported_symbol_sections[(int)local_40] == (bfd_section *)0x0) &&\n       (pdVar26->flag_forward == '\0')) {\n      pdVar19 = local_48->exports;\n      pdVar26 = pdVar19 + (int)local_40;\n    }\n    else {\n      iVar10 = pdVar26->ordinal;\n      if (iVar10 != -1) {\n        iVar25 = iVar10 - local_3c;\n        piVar23 = exported_symbols + iVar25;\n        if (*piVar23 != -1) {\n          pcVar11 = pdVar26->name;\n          pcVar15 = pdVar19[*piVar23].name;\n          pcVar20 = (char *)dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          einfo(pcVar20,iVar10,pcVar11,pcVar15);\n          local_3c = min_ordinal;\n          piVar23 = exported_symbols + iVar25;\n          local_48 = pe_def_file;\n        }\n        *piVar23 = (int)local_40;\n      }\n      pdVar19 = local_48->exports;\n      pdVar26 = pdVar19 + (int)local_40;\n      if (pdVar26->its_name == (char *)0x0) {\n        sVar14 = strlen(pdVar26->name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }\n      else {\n        sVar14 = strlen(pdVar26->its_name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }\n    }\n    if (pdVar26->flag_forward != '\0') {\n      sVar14 = strlen(pdVar26->internal_name);\n      local_44 = (bfd *)((int)local_44 + 1 + sVar14);\n    }\n    ppbVar8 = exported_symbol_sections;\n    piVar23 = exported_symbols;\n    local_40 = (char *)((int)local_40 + 1);\n  } while ((int)local_40 < local_48->num_exports);" do (compound_statement "{\n    pdVar26 = pdVar19 + (int)local_40;\n    if ((exported_symbol_sections[(int)local_40] == (bfd_section *)0x0) &&\n       (pdVar26->flag_forward == '\0')) {\n      pdVar19 = local_48->exports;\n      pdVar26 = pdVar19 + (int)local_40;\n    }\n    else {\n      iVar10 = pdVar26->ordinal;\n      if (iVar10 != -1) {\n        iVar25 = iVar10 - local_3c;\n        piVar23 = exported_symbols + iVar25;\n        if (*piVar23 != -1) {\n          pcVar11 = pdVar26->name;\n          pcVar15 = pdVar19[*piVar23].name;\n          pcVar20 = (char *)dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          einfo(pcVar20,iVar10,pcVar11,pcVar15);\n          local_3c = min_ordinal;\n          piVar23 = exported_symbols + iVar25;\n          local_48 = pe_def_file;\n        }\n        *piVar23 = (int)local_40;\n      }\n      pdVar19 = local_48->exports;\n      pdVar26 = pdVar19 + (int)local_40;\n      if (pdVar26->its_name == (char *)0x0) {\n        sVar14 = strlen(pdVar26->name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }\n      else {\n        sVar14 = strlen(pdVar26->its_name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }\n    }\n    if (pdVar26->flag_forward != '\0') {\n      sVar14 = strlen(pdVar26->internal_name);\n      local_44 = (bfd *)((int)local_44 + 1 + sVar14);\n    }\n    ppbVar8 = exported_symbol_sections;\n    piVar23 = exported_symbols;\n    local_40 = (char *)((int)local_40 + 1);\n  }" { (expression_statement "pdVar26 = pdVar19 + (int)local_40;" (assignment_expression "pdVar26 = pdVar19 + (int)local_40" identifier = (binary_expression "pdVar19 + (int)local_40" identifier + (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((exported_symbol_sections[(int)local_40] == (bfd_section *)0x0) &&\n       (pdVar26->flag_forward == '\0')) {\n      pdVar19 = local_48->exports;\n      pdVar26 = pdVar19 + (int)local_40;\n    }\n    else {\n      iVar10 = pdVar26->ordinal;\n      if (iVar10 != -1) {\n        iVar25 = iVar10 - local_3c;\n        piVar23 = exported_symbols + iVar25;\n        if (*piVar23 != -1) {\n          pcVar11 = pdVar26->name;\n          pcVar15 = pdVar19[*piVar23].name;\n          pcVar20 = (char *)dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          einfo(pcVar20,iVar10,pcVar11,pcVar15);\n          local_3c = min_ordinal;\n          piVar23 = exported_symbols + iVar25;\n          local_48 = pe_def_file;\n        }\n        *piVar23 = (int)local_40;\n      }\n      pdVar19 = local_48->exports;\n      pdVar26 = pdVar19 + (int)local_40;\n      if (pdVar26->its_name == (char *)0x0) {\n        sVar14 = strlen(pdVar26->name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }\n      else {\n        sVar14 = strlen(pdVar26->its_name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }\n    }" if (parenthesized_expression "((exported_symbol_sections[(int)local_40] == (bfd_section *)0x0) &&\n       (pdVar26->flag_forward == '\0'))" ( (binary_expression "(exported_symbol_sections[(int)local_40] == (bfd_section *)0x0) &&\n       (pdVar26->flag_forward == '\0')" (parenthesized_expression "(exported_symbol_sections[(int)local_40] == (bfd_section *)0x0)" ( (binary_expression "exported_symbol_sections[(int)local_40] == (bfd_section *)0x0" (subscript_expression "exported_symbol_sections[(int)local_40]" identifier [ (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) ]) == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pdVar26->flag_forward == '\0')" ( (binary_expression "pdVar26->flag_forward == '\0'" (field_expression "pdVar26->flag_forward" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      pdVar19 = local_48->exports;\n      pdVar26 = pdVar19 + (int)local_40;\n    }" { (expression_statement "pdVar19 = local_48->exports;" (assignment_expression "pdVar19 = local_48->exports" identifier = (field_expression "local_48->exports" identifier -> field_identifier)) ;) (expression_statement "pdVar26 = pdVar19 + (int)local_40;" (assignment_expression "pdVar26 = pdVar19 + (int)local_40" identifier = (binary_expression "pdVar19 + (int)local_40" identifier + (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n      iVar10 = pdVar26->ordinal;\n      if (iVar10 != -1) {\n        iVar25 = iVar10 - local_3c;\n        piVar23 = exported_symbols + iVar25;\n        if (*piVar23 != -1) {\n          pcVar11 = pdVar26->name;\n          pcVar15 = pdVar19[*piVar23].name;\n          pcVar20 = (char *)dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          einfo(pcVar20,iVar10,pcVar11,pcVar15);\n          local_3c = min_ordinal;\n          piVar23 = exported_symbols + iVar25;\n          local_48 = pe_def_file;\n        }\n        *piVar23 = (int)local_40;\n      }\n      pdVar19 = local_48->exports;\n      pdVar26 = pdVar19 + (int)local_40;\n      if (pdVar26->its_name == (char *)0x0) {\n        sVar14 = strlen(pdVar26->name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }\n      else {\n        sVar14 = strlen(pdVar26->its_name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }\n    }" else (compound_statement "{\n      iVar10 = pdVar26->ordinal;\n      if (iVar10 != -1) {\n        iVar25 = iVar10 - local_3c;\n        piVar23 = exported_symbols + iVar25;\n        if (*piVar23 != -1) {\n          pcVar11 = pdVar26->name;\n          pcVar15 = pdVar19[*piVar23].name;\n          pcVar20 = (char *)dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          einfo(pcVar20,iVar10,pcVar11,pcVar15);\n          local_3c = min_ordinal;\n          piVar23 = exported_symbols + iVar25;\n          local_48 = pe_def_file;\n        }\n        *piVar23 = (int)local_40;\n      }\n      pdVar19 = local_48->exports;\n      pdVar26 = pdVar19 + (int)local_40;\n      if (pdVar26->its_name == (char *)0x0) {\n        sVar14 = strlen(pdVar26->name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }\n      else {\n        sVar14 = strlen(pdVar26->its_name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }\n    }" { (expression_statement "iVar10 = pdVar26->ordinal;" (assignment_expression "iVar10 = pdVar26->ordinal" identifier = (field_expression "pdVar26->ordinal" identifier -> field_identifier)) ;) (if_statement "if (iVar10 != -1) {\n        iVar25 = iVar10 - local_3c;\n        piVar23 = exported_symbols + iVar25;\n        if (*piVar23 != -1) {\n          pcVar11 = pdVar26->name;\n          pcVar15 = pdVar19[*piVar23].name;\n          pcVar20 = (char *)dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          einfo(pcVar20,iVar10,pcVar11,pcVar15);\n          local_3c = min_ordinal;\n          piVar23 = exported_symbols + iVar25;\n          local_48 = pe_def_file;\n        }\n        *piVar23 = (int)local_40;\n      }" if (parenthesized_expression "(iVar10 != -1)" ( (binary_expression "iVar10 != -1" identifier != number_literal) )) (compound_statement "{\n        iVar25 = iVar10 - local_3c;\n        piVar23 = exported_symbols + iVar25;\n        if (*piVar23 != -1) {\n          pcVar11 = pdVar26->name;\n          pcVar15 = pdVar19[*piVar23].name;\n          pcVar20 = (char *)dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          einfo(pcVar20,iVar10,pcVar11,pcVar15);\n          local_3c = min_ordinal;\n          piVar23 = exported_symbols + iVar25;\n          local_48 = pe_def_file;\n        }\n        *piVar23 = (int)local_40;\n      }" { (expression_statement "iVar25 = iVar10 - local_3c;" (assignment_expression "iVar25 = iVar10 - local_3c" identifier = (binary_expression "iVar10 - local_3c" identifier - identifier)) ;) (expression_statement "piVar23 = exported_symbols + iVar25;" (assignment_expression "piVar23 = exported_symbols + iVar25" identifier = (binary_expression "exported_symbols + iVar25" identifier + identifier)) ;) (if_statement "if (*piVar23 != -1) {\n          pcVar11 = pdVar26->name;\n          pcVar15 = pdVar19[*piVar23].name;\n          pcVar20 = (char *)dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          einfo(pcVar20,iVar10,pcVar11,pcVar15);\n          local_3c = min_ordinal;\n          piVar23 = exported_symbols + iVar25;\n          local_48 = pe_def_file;\n        }" if (parenthesized_expression "(*piVar23 != -1)" ( (binary_expression "*piVar23 != -1" (pointer_expression "*piVar23" * identifier) != number_literal) )) (compound_statement "{\n          pcVar11 = pdVar26->name;\n          pcVar15 = pdVar19[*piVar23].name;\n          pcVar20 = (char *)dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          einfo(pcVar20,iVar10,pcVar11,pcVar15);\n          local_3c = min_ordinal;\n          piVar23 = exported_symbols + iVar25;\n          local_48 = pe_def_file;\n        }" { (expression_statement "pcVar11 = pdVar26->name;" (assignment_expression "pcVar11 = pdVar26->name" identifier = (field_expression "pdVar26->name" identifier -> field_identifier)) ;) (expression_statement "pcVar15 = pdVar19[*piVar23].name;" (assignment_expression "pcVar15 = pdVar19[*piVar23].name" identifier = (field_expression "pdVar19[*piVar23].name" (subscript_expression "pdVar19[*piVar23]" identifier [ (pointer_expression "*piVar23" * identifier) ]) . field_identifier)) ;) (expression_statement "pcVar20 = (char *)dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);" (assignment_expression "pcVar20 = (char *)dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5)" identifier (argument_list "(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5)" ( number_literal , (string_literal ""%X%P: error: ordinal used twice: %d (%s vs %s)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar20,iVar10,pcVar11,pcVar15);" (call_expression "einfo(pcVar20,iVar10,pcVar11,pcVar15)" identifier (argument_list "(pcVar20,iVar10,pcVar11,pcVar15)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_3c = min_ordinal;" (assignment_expression "local_3c = min_ordinal" identifier = identifier) ;) (expression_statement "piVar23 = exported_symbols + iVar25;" (assignment_expression "piVar23 = exported_symbols + iVar25" identifier = (binary_expression "exported_symbols + iVar25" identifier + identifier)) ;) (expression_statement "local_48 = pe_def_file;" (assignment_expression "local_48 = pe_def_file" identifier = identifier) ;) })) (expression_statement "*piVar23 = (int)local_40;" (assignment_expression "*piVar23 = (int)local_40" (pointer_expression "*piVar23" * identifier) = (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "pdVar19 = local_48->exports;" (assignment_expression "pdVar19 = local_48->exports" identifier = (field_expression "local_48->exports" identifier -> field_identifier)) ;) (expression_statement "pdVar26 = pdVar19 + (int)local_40;" (assignment_expression "pdVar26 = pdVar19 + (int)local_40" identifier = (binary_expression "pdVar19 + (int)local_40" identifier + (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (pdVar26->its_name == (char *)0x0) {\n        sVar14 = strlen(pdVar26->name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }\n      else {\n        sVar14 = strlen(pdVar26->its_name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }" if (parenthesized_expression "(pdVar26->its_name == (char *)0x0)" ( (binary_expression "pdVar26->its_name == (char *)0x0" (field_expression "pdVar26->its_name" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        sVar14 = strlen(pdVar26->name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }" { (expression_statement "sVar14 = strlen(pdVar26->name);" (assignment_expression "sVar14 = strlen(pdVar26->name)" identifier = (call_expression "strlen(pdVar26->name)" identifier (argument_list "(pdVar26->name)" ( (field_expression "pdVar26->name" identifier -> field_identifier) )))) ;) (expression_statement "local_44 = (bfd *)(sVar14 + (int)local_44 + 1);" (assignment_expression "local_44 = (bfd *)(sVar14 + (int)local_44 + 1)" identifier = (cast_expression "(bfd *)(sVar14 + (int)local_44 + 1)" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar14 + (int)local_44 + 1)" ( (binary_expression "sVar14 + (int)local_44 + 1" (binary_expression "sVar14 + (int)local_44" identifier + (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )))) ;) }) (else_clause "else {\n        sVar14 = strlen(pdVar26->its_name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }" else (compound_statement "{\n        sVar14 = strlen(pdVar26->its_name);\n        local_44 = (bfd *)(sVar14 + (int)local_44 + 1);\n      }" { (expression_statement "sVar14 = strlen(pdVar26->its_name);" (assignment_expression "sVar14 = strlen(pdVar26->its_name)" identifier = (call_expression "strlen(pdVar26->its_name)" identifier (argument_list "(pdVar26->its_name)" ( (field_expression "pdVar26->its_name" identifier -> field_identifier) )))) ;) (expression_statement "local_44 = (bfd *)(sVar14 + (int)local_44 + 1);" (assignment_expression "local_44 = (bfd *)(sVar14 + (int)local_44 + 1)" identifier = (cast_expression "(bfd *)(sVar14 + (int)local_44 + 1)" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar14 + (int)local_44 + 1)" ( (binary_expression "sVar14 + (int)local_44 + 1" (binary_expression "sVar14 + (int)local_44" identifier + (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )))) ;) }))) }))) (if_statement "if (pdVar26->flag_forward != '\0') {\n      sVar14 = strlen(pdVar26->internal_name);\n      local_44 = (bfd *)((int)local_44 + 1 + sVar14);\n    }" if (parenthesized_expression "(pdVar26->flag_forward != '\0')" ( (binary_expression "pdVar26->flag_forward != '\0'" (field_expression "pdVar26->flag_forward" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      sVar14 = strlen(pdVar26->internal_name);\n      local_44 = (bfd *)((int)local_44 + 1 + sVar14);\n    }" { (expression_statement "sVar14 = strlen(pdVar26->internal_name);" (assignment_expression "sVar14 = strlen(pdVar26->internal_name)" identifier = (call_expression "strlen(pdVar26->internal_name)" identifier (argument_list "(pdVar26->internal_name)" ( (field_expression "pdVar26->internal_name" identifier -> field_identifier) )))) ;) (expression_statement "local_44 = (bfd *)((int)local_44 + 1 + sVar14);" (assignment_expression "local_44 = (bfd *)((int)local_44 + 1 + sVar14)" identifier = (cast_expression "(bfd *)((int)local_44 + 1 + sVar14)" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44 + 1 + sVar14)" ( (binary_expression "(int)local_44 + 1 + sVar14" (binary_expression "(int)local_44 + 1" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) + identifier) )))) ;) })) (expression_statement "ppbVar8 = exported_symbol_sections;" (assignment_expression "ppbVar8 = exported_symbol_sections" identifier = identifier) ;) (expression_statement "piVar23 = exported_symbols;" (assignment_expression "piVar23 = exported_symbols" identifier = identifier) ;) (expression_statement "local_40 = (char *)((int)local_40 + 1);" (assignment_expression "local_40 = (char *)((int)local_40 + 1)" identifier = (cast_expression "(char *)((int)local_40 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_40 + 1)" ( (binary_expression "(int)local_40 + 1" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)local_40 < local_48->num_exports)" ( (binary_expression "(int)local_40 < local_48->num_exports" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) < (field_expression "local_48->num_exports" identifier -> field_identifier)) )) ;) (expression_statement "iVar10 = local_3c;" (assignment_expression "iVar10 = local_3c" identifier = identifier) ;) (if_statement "if (local_48->num_exports < 1) goto LAB_00067580;" if (parenthesized_expression "(local_48->num_exports < 1)" ( (binary_expression "local_48->num_exports < 1" (field_expression "local_48->num_exports" identifier -> field_identifier) < number_literal) )) (goto_statement "goto LAB_00067580;" goto statement_identifier ;)) (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) (expression_statement "piVar18 = &pdVar19->ordinal;" (assignment_expression "piVar18 = &pdVar19->ordinal" identifier = (pointer_expression "&pdVar19->ordinal" & (field_expression "pdVar19->ordinal" identifier -> field_identifier))) ;) (do_statement "do {\n    if (ppbVar8[iVar25] == (bfd_section *)0x0) {\n      if (*(char *)(piVar18 + 3) != '\0') {\n        iVar22 = *piVar18;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar22 = *piVar18;\njoined_r0x000676c3:\n      if (iVar22 == -1) {\n        piVar21 = piVar23 + (iVar10 - local_3c);\n        if (*piVar21 != -1) {\n          iVar10 = iVar10 + 1;\n          piVar21 = piVar23 + (iVar10 - local_3c);\n          while (*piVar21 != -1) {\n            iVar10 = iVar10 + 1;\n            piVar21 = piVar21 + 1;\n          }\n        }\n        *piVar21 = iVar25;\n        *piVar18 = iVar10;\n      }\n    }\n    iVar25 = iVar25 + 1;\n    piVar18 = piVar18 + 7;\n    if (local_48->num_exports <= iVar25) {\nLAB_00067580:\n      iVar25 = max_ordinal;\n      if ((0xffff < max_ordinal) || (0xffff < iVar10)) {\n        pcVar11 = (char *)dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar10 <= iVar25) {\n          iVar10 = iVar25;\n        }\n        einfo(pcVar11,iVar10);\n      }\n      iVar10 = count_exported_byname;\n      sVar14 = strlen(dll_name);\n      edata_sz = (int)local_44 + iVar10 * 6 + 0x29 + export_table_size * 4 + sVar14;\n      build_filler_bfd(1);\n      pe_output_file_set_long_section_names(filler_bfd);\n      return;\n    }\n  } while( true );" do (compound_statement "{\n    if (ppbVar8[iVar25] == (bfd_section *)0x0) {\n      if (*(char *)(piVar18 + 3) != '\0') {\n        iVar22 = *piVar18;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar22 = *piVar18;\njoined_r0x000676c3:\n      if (iVar22 == -1) {\n        piVar21 = piVar23 + (iVar10 - local_3c);\n        if (*piVar21 != -1) {\n          iVar10 = iVar10 + 1;\n          piVar21 = piVar23 + (iVar10 - local_3c);\n          while (*piVar21 != -1) {\n            iVar10 = iVar10 + 1;\n            piVar21 = piVar21 + 1;\n          }\n        }\n        *piVar21 = iVar25;\n        *piVar18 = iVar10;\n      }\n    }\n    iVar25 = iVar25 + 1;\n    piVar18 = piVar18 + 7;\n    if (local_48->num_exports <= iVar25) {\nLAB_00067580:\n      iVar25 = max_ordinal;\n      if ((0xffff < max_ordinal) || (0xffff < iVar10)) {\n        pcVar11 = (char *)dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar10 <= iVar25) {\n          iVar10 = iVar25;\n        }\n        einfo(pcVar11,iVar10);\n      }\n      iVar10 = count_exported_byname;\n      sVar14 = strlen(dll_name);\n      edata_sz = (int)local_44 + iVar10 * 6 + 0x29 + export_table_size * 4 + sVar14;\n      build_filler_bfd(1);\n      pe_output_file_set_long_section_names(filler_bfd);\n      return;\n    }\n  }" { (if_statement "if (ppbVar8[iVar25] == (bfd_section *)0x0) {\n      if (*(char *)(piVar18 + 3) != '\0') {\n        iVar22 = *piVar18;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar22 = *piVar18;\njoined_r0x000676c3:\n      if (iVar22 == -1) {\n        piVar21 = piVar23 + (iVar10 - local_3c);\n        if (*piVar21 != -1) {\n          iVar10 = iVar10 + 1;\n          piVar21 = piVar23 + (iVar10 - local_3c);\n          while (*piVar21 != -1) {\n            iVar10 = iVar10 + 1;\n            piVar21 = piVar21 + 1;\n          }\n        }\n        *piVar21 = iVar25;\n        *piVar18 = iVar10;\n      }\n    }" if (parenthesized_expression "(ppbVar8[iVar25] == (bfd_section *)0x0)" ( (binary_expression "ppbVar8[iVar25] == (bfd_section *)0x0" (subscript_expression "ppbVar8[iVar25]" identifier [ identifier ]) == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (*(char *)(piVar18 + 3) != '\0') {\n        iVar22 = *piVar18;\n        goto joined_r0x000676c3;\n      }\n    }" { (if_statement "if (*(char *)(piVar18 + 3) != '\0') {\n        iVar22 = *piVar18;\n        goto joined_r0x000676c3;\n      }" if (parenthesized_expression "(*(char *)(piVar18 + 3) != '\0')" ( (binary_expression "*(char *)(piVar18 + 3) != '\0'" (pointer_expression "*(char *)(piVar18 + 3)" * (cast_expression "(char *)(piVar18 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar18 + 3)" ( (binary_expression "piVar18 + 3" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar22 = *piVar18;\n        goto joined_r0x000676c3;\n      }" { (expression_statement "iVar22 = *piVar18;" (assignment_expression "iVar22 = *piVar18" identifier = (pointer_expression "*piVar18" * identifier)) ;) (goto_statement "goto joined_r0x000676c3;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar22 = *piVar18;\njoined_r0x000676c3:\n      if (iVar22 == -1) {\n        piVar21 = piVar23 + (iVar10 - local_3c);\n        if (*piVar21 != -1) {\n          iVar10 = iVar10 + 1;\n          piVar21 = piVar23 + (iVar10 - local_3c);\n          while (*piVar21 != -1) {\n            iVar10 = iVar10 + 1;\n            piVar21 = piVar21 + 1;\n          }\n        }\n        *piVar21 = iVar25;\n        *piVar18 = iVar10;\n      }\n    }" else (compound_statement "{\n      iVar22 = *piVar18;\njoined_r0x000676c3:\n      if (iVar22 == -1) {\n        piVar21 = piVar23 + (iVar10 - local_3c);\n        if (*piVar21 != -1) {\n          iVar10 = iVar10 + 1;\n          piVar21 = piVar23 + (iVar10 - local_3c);\n          while (*piVar21 != -1) {\n            iVar10 = iVar10 + 1;\n            piVar21 = piVar21 + 1;\n          }\n        }\n        *piVar21 = iVar25;\n        *piVar18 = iVar10;\n      }\n    }" { (expression_statement "iVar22 = *piVar18;" (assignment_expression "iVar22 = *piVar18" identifier = (pointer_expression "*piVar18" * identifier)) ;) (labeled_statement "joined_r0x000676c3:\n      if (iVar22 == -1) {\n        piVar21 = piVar23 + (iVar10 - local_3c);\n        if (*piVar21 != -1) {\n          iVar10 = iVar10 + 1;\n          piVar21 = piVar23 + (iVar10 - local_3c);\n          while (*piVar21 != -1) {\n            iVar10 = iVar10 + 1;\n            piVar21 = piVar21 + 1;\n          }\n        }\n        *piVar21 = iVar25;\n        *piVar18 = iVar10;\n      }" statement_identifier : (if_statement "if (iVar22 == -1) {\n        piVar21 = piVar23 + (iVar10 - local_3c);\n        if (*piVar21 != -1) {\n          iVar10 = iVar10 + 1;\n          piVar21 = piVar23 + (iVar10 - local_3c);\n          while (*piVar21 != -1) {\n            iVar10 = iVar10 + 1;\n            piVar21 = piVar21 + 1;\n          }\n        }\n        *piVar21 = iVar25;\n        *piVar18 = iVar10;\n      }" if (parenthesized_expression "(iVar22 == -1)" ( (binary_expression "iVar22 == -1" identifier == number_literal) )) (compound_statement "{\n        piVar21 = piVar23 + (iVar10 - local_3c);\n        if (*piVar21 != -1) {\n          iVar10 = iVar10 + 1;\n          piVar21 = piVar23 + (iVar10 - local_3c);\n          while (*piVar21 != -1) {\n            iVar10 = iVar10 + 1;\n            piVar21 = piVar21 + 1;\n          }\n        }\n        *piVar21 = iVar25;\n        *piVar18 = iVar10;\n      }" { (expression_statement "piVar21 = piVar23 + (iVar10 - local_3c);" (assignment_expression "piVar21 = piVar23 + (iVar10 - local_3c)" identifier = (binary_expression "piVar23 + (iVar10 - local_3c)" identifier + (parenthesized_expression "(iVar10 - local_3c)" ( (binary_expression "iVar10 - local_3c" identifier - identifier) )))) ;) (if_statement "if (*piVar21 != -1) {\n          iVar10 = iVar10 + 1;\n          piVar21 = piVar23 + (iVar10 - local_3c);\n          while (*piVar21 != -1) {\n            iVar10 = iVar10 + 1;\n            piVar21 = piVar21 + 1;\n          }\n        }" if (parenthesized_expression "(*piVar21 != -1)" ( (binary_expression "*piVar21 != -1" (pointer_expression "*piVar21" * identifier) != number_literal) )) (compound_statement "{\n          iVar10 = iVar10 + 1;\n          piVar21 = piVar23 + (iVar10 - local_3c);\n          while (*piVar21 != -1) {\n            iVar10 = iVar10 + 1;\n            piVar21 = piVar21 + 1;\n          }\n        }" { (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "piVar21 = piVar23 + (iVar10 - local_3c);" (assignment_expression "piVar21 = piVar23 + (iVar10 - local_3c)" identifier = (binary_expression "piVar23 + (iVar10 - local_3c)" identifier + (parenthesized_expression "(iVar10 - local_3c)" ( (binary_expression "iVar10 - local_3c" identifier - identifier) )))) ;) (while_statement "while (*piVar21 != -1) {\n            iVar10 = iVar10 + 1;\n            piVar21 = piVar21 + 1;\n          }" while (parenthesized_expression "(*piVar21 != -1)" ( (binary_expression "*piVar21 != -1" (pointer_expression "*piVar21" * identifier) != number_literal) )) (compound_statement "{\n            iVar10 = iVar10 + 1;\n            piVar21 = piVar21 + 1;\n          }" { (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "piVar21 = piVar21 + 1;" (assignment_expression "piVar21 = piVar21 + 1" identifier = (binary_expression "piVar21 + 1" identifier + number_literal)) ;) })) })) (expression_statement "*piVar21 = iVar25;" (assignment_expression "*piVar21 = iVar25" (pointer_expression "*piVar21" * identifier) = identifier) ;) (expression_statement "*piVar18 = iVar10;" (assignment_expression "*piVar18 = iVar10" (pointer_expression "*piVar18" * identifier) = identifier) ;) }))) }))) (expression_statement "iVar25 = iVar25 + 1;" (assignment_expression "iVar25 = iVar25 + 1" identifier = (binary_expression "iVar25 + 1" identifier + number_literal)) ;) (expression_statement "piVar18 = piVar18 + 7;" (assignment_expression "piVar18 = piVar18 + 7" identifier = (binary_expression "piVar18 + 7" identifier + number_literal)) ;) (if_statement "if (local_48->num_exports <= iVar25) {\nLAB_00067580:\n      iVar25 = max_ordinal;\n      if ((0xffff < max_ordinal) || (0xffff < iVar10)) {\n        pcVar11 = (char *)dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar10 <= iVar25) {\n          iVar10 = iVar25;\n        }\n        einfo(pcVar11,iVar10);\n      }\n      iVar10 = count_exported_byname;\n      sVar14 = strlen(dll_name);\n      edata_sz = (int)local_44 + iVar10 * 6 + 0x29 + export_table_size * 4 + sVar14;\n      build_filler_bfd(1);\n      pe_output_file_set_long_section_names(filler_bfd);\n      return;\n    }" if (parenthesized_expression "(local_48->num_exports <= iVar25)" ( (binary_expression "local_48->num_exports <= iVar25" (field_expression "local_48->num_exports" identifier -> field_identifier) <= identifier) )) (compound_statement "{\nLAB_00067580:\n      iVar25 = max_ordinal;\n      if ((0xffff < max_ordinal) || (0xffff < iVar10)) {\n        pcVar11 = (char *)dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar10 <= iVar25) {\n          iVar10 = iVar25;\n        }\n        einfo(pcVar11,iVar10);\n      }\n      iVar10 = count_exported_byname;\n      sVar14 = strlen(dll_name);\n      edata_sz = (int)local_44 + iVar10 * 6 + 0x29 + export_table_size * 4 + sVar14;\n      build_filler_bfd(1);\n      pe_output_file_set_long_section_names(filler_bfd);\n      return;\n    }" { (labeled_statement "LAB_00067580:\n      iVar25 = max_ordinal;" statement_identifier : (expression_statement "iVar25 = max_ordinal;" (assignment_expression "iVar25 = max_ordinal" identifier = identifier) ;)) (if_statement "if ((0xffff < max_ordinal) || (0xffff < iVar10)) {\n        pcVar11 = (char *)dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar10 <= iVar25) {\n          iVar10 = iVar25;\n        }\n        einfo(pcVar11,iVar10);\n      }" if (parenthesized_expression "((0xffff < max_ordinal) || (0xffff < iVar10))" ( (binary_expression "(0xffff < max_ordinal) || (0xffff < iVar10)" (parenthesized_expression "(0xffff < max_ordinal)" ( (binary_expression "0xffff < max_ordinal" number_literal < identifier) )) || (parenthesized_expression "(0xffff < iVar10)" ( (binary_expression "0xffff < iVar10" number_literal < identifier) ))) )) (compound_statement "{\n        pcVar11 = (char *)dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar10 <= iVar25) {\n          iVar10 = iVar25;\n        }\n        einfo(pcVar11,iVar10);\n      }" { (expression_statement "pcVar11 = (char *)dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);" (assignment_expression "pcVar11 = (char *)dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5)" identifier (argument_list "(0,"%X%P: error: export ordinal too large: %d\n",5)" ( number_literal , (string_literal ""%X%P: error: export ordinal too large: %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (if_statement "if (iVar10 <= iVar25) {\n          iVar10 = iVar25;\n        }" if (parenthesized_expression "(iVar10 <= iVar25)" ( (binary_expression "iVar10 <= iVar25" identifier <= identifier) )) (compound_statement "{\n          iVar10 = iVar25;\n        }" { (expression_statement "iVar10 = iVar25;" (assignment_expression "iVar10 = iVar25" identifier = identifier) ;) })) (expression_statement "einfo(pcVar11,iVar10);" (call_expression "einfo(pcVar11,iVar10)" identifier (argument_list "(pcVar11,iVar10)" ( identifier , identifier ))) ;) })) (expression_statement "iVar10 = count_exported_byname;" (assignment_expression "iVar10 = count_exported_byname" identifier = identifier) ;) (expression_statement "sVar14 = strlen(dll_name);" (assignment_expression "sVar14 = strlen(dll_name)" identifier = (call_expression "strlen(dll_name)" identifier (argument_list "(dll_name)" ( identifier )))) ;) (expression_statement "edata_sz = (int)local_44 + iVar10 * 6 + 0x29 + export_table_size * 4 + sVar14;" (assignment_expression "edata_sz = (int)local_44 + iVar10 * 6 + 0x29 + export_table_size * 4 + sVar14" identifier = (binary_expression "(int)local_44 + iVar10 * 6 + 0x29 + export_table_size * 4 + sVar14" (binary_expression "(int)local_44 + iVar10 * 6 + 0x29 + export_table_size * 4" (binary_expression "(int)local_44 + iVar10 * 6 + 0x29" (binary_expression "(int)local_44 + iVar10 * 6" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar10 * 6" identifier * number_literal)) + number_literal) + (binary_expression "export_table_size * 4" identifier * number_literal)) + identifier)) ;) (expression_statement "build_filler_bfd(1);" (call_expression "build_filler_bfd(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "pe_output_file_set_long_section_names(filler_bfd);" (call_expression "pe_output_file_set_long_section_names(filler_bfd)" identifier (argument_list "(filler_bfd)" ( identifier ))) ;) (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "code_r0x00066da5:\n  pdVar27 = pdVar27->next;" statement_identifier : (expression_statement "pdVar27 = pdVar27->next;" (assignment_expression "pdVar27 = pdVar27->next" identifier = (field_expression "pdVar27->next" identifier -> field_identifier)) ;)) (expression_statement "**(uint **)(iVar10 + 0x14) = *puVar1;" (assignment_expression "**(uint **)(iVar10 + 0x14) = *puVar1" (pointer_expression "**(uint **)(iVar10 + 0x14)" * (pointer_expression "*(uint **)(iVar10 + 0x14)" * (cast_expression "(uint **)(iVar10 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) ))))) = (pointer_expression "*puVar1" * identifier)) ;) (goto_statement "goto joined_r0x00066d64;" goto statement_identifier ;) })))
(translation_unit "void FUN_00066ca0(undefined4 *param_1,byte *param_2)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  int iVar3;\n  void *pvVar4;\n  undefined *puVar5;\n  int iVar6;\n  size_t sVar7;\n  char *pcVar8;\n  char *pcVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined4 uVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  char *pcVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int iVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  int iVar21;\n  char cVar22;\n  byte *pbVar23;\n  undefined4 *puVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  bool bVar28;\n  byte bVar29;\n  int *local_48;\n  uint local_44;\n  char *local_40;\n  int local_3c;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar29 = 0;\n  uStack_14 = 0x66ca9;\n  FUN_00063a00(*(undefined4 *)param_1[1]);\n  FUN_00066c30(param_1);\n  if (DAT_001d1218 == (undefined4 *)0x0) {\n    DAT_001d1218 = (undefined4 *)FUN_000589a0();\n  }\n  for (iVar6 = *(int *)(param_2 + 0x3c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x9c)) {\n    iVar3 = bfd_get_section_by_name(iVar6,".drectve");\n    if (iVar3 != 0) {\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }\n  }\n  piVar13 = (int *)DAT_001d1218[0x12];\njoined_r0x00066d64:\n  if (piVar13 != (int *)0x0) {\n    do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );\n  }\n  bVar2 = *param_2;\n  if ((bVar2 & 2) == 0) {\n    if (DAT_001d1218[0xb] != 0) {\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }\n    puVar24 = DAT_001d1218;\n    if ((DAT_001d1214 != 0) && (DAT_001d1210 == 0)) {\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }\nLAB_00067375:\n    if ((bVar2 & 1) == 0) {\n      return;\n    }\n  }\n  else {\n    if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }\n    local_48[0xb] = iVar3;\n    DAT_001d1278 = xmalloc(iVar6);\n    DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);\n    puVar24 = DAT_001d1218;\n    memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);\n    iVar6 = puVar24[0xb];\n    DAT_001d1258 = 0;\n    DAT_001d125c = 0x10000;\n    DAT_001d126c = 0;\n    DAT_001d1268 = 0;\n    DAT_001d1264 = 0;\n    if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }\njoined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }\n  }\n  DAT_001d1260 = (char *)*puVar24;\n  if (DAT_001d1260 == (char *)0x0) {\n    DAT_001d1260 = (char *)*param_1;\n    cVar22 = *DAT_001d1260;\n    if (cVar22 != '\0') {\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }\n  }\n  if ((DAT_001d1264 == 0) || (DAT_001d1258 <= DAT_001d126c)) {\n    DAT_001d125c = 1;\n    DAT_001d1258 = DAT_001d126c;\n  }\n  else {\n    iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;\n    if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }\n  }\n  DAT_001d1270 = (DAT_001d1258 - DAT_001d125c) + 1;\n  puVar11 = (undefined4 *)xmalloc(DAT_001d1270 * 4);\n  puVar24 = puVar11 + DAT_001d1270;\n  DAT_001d1254 = puVar11;\n  if (0 < DAT_001d1270) {\n    do {\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    } while (puVar24 != puVar11);\n  }\n  local_48 = DAT_001d1218;\n  local_3c = DAT_001d125c;\n  if ((int)DAT_001d1218[0xb] < 1) {\n    local_44 = 0;\n    iVar6 = DAT_001d125c;\n    goto LAB_00067580;\n  }\n  local_44 = 0;\n  local_40 = (char *)0x0;\n  iVar3 = DAT_001d1218[0xc];\n  do {\n    iVar6 = (int)local_40 * 0x1c;\n    puVar24 = (undefined4 *)(iVar3 + iVar6);\n    if ((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))\n    {\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }\n    else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }\n    if (*(char *)(puVar24 + 6) != '\0') {\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }\n    pvVar4 = DAT_001d1274;\n    puVar24 = DAT_001d1254;\n    local_40 = (char *)((int)local_40 + 1);\n  } while ((int)local_40 < local_48[0xb]);\n  iVar6 = local_3c;\n  if (local_48[0xb] < 1) goto LAB_00067580;\n  iVar18 = 0;\n  piVar13 = (int *)(iVar3 + 0xc);\n  do {\n    if (*(int *)((int)pvVar4 + iVar18 * 4) == 0) {\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }\n    iVar18 = iVar18 + 1;\n    piVar13 = piVar13 + 7;\n    if (local_48[0xb] <= iVar18) {\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }\n  } while( true );\ncode_r0x00066da5:\n  piVar13 = (int *)*piVar13;\n  **(uint **)(iVar6 + 0x14) = *puVar1;\n  goto joined_r0x00066d64;\n}\n\n" (function_definition "void FUN_00066ca0(undefined4 *param_1,byte *param_2)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  int iVar3;\n  void *pvVar4;\n  undefined *puVar5;\n  int iVar6;\n  size_t sVar7;\n  char *pcVar8;\n  char *pcVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined4 uVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  char *pcVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int iVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  int iVar21;\n  char cVar22;\n  byte *pbVar23;\n  undefined4 *puVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  bool bVar28;\n  byte bVar29;\n  int *local_48;\n  uint local_44;\n  char *local_40;\n  int local_3c;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar29 = 0;\n  uStack_14 = 0x66ca9;\n  FUN_00063a00(*(undefined4 *)param_1[1]);\n  FUN_00066c30(param_1);\n  if (DAT_001d1218 == (undefined4 *)0x0) {\n    DAT_001d1218 = (undefined4 *)FUN_000589a0();\n  }\n  for (iVar6 = *(int *)(param_2 + 0x3c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x9c)) {\n    iVar3 = bfd_get_section_by_name(iVar6,".drectve");\n    if (iVar3 != 0) {\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }\n  }\n  piVar13 = (int *)DAT_001d1218[0x12];\njoined_r0x00066d64:\n  if (piVar13 != (int *)0x0) {\n    do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );\n  }\n  bVar2 = *param_2;\n  if ((bVar2 & 2) == 0) {\n    if (DAT_001d1218[0xb] != 0) {\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }\n    puVar24 = DAT_001d1218;\n    if ((DAT_001d1214 != 0) && (DAT_001d1210 == 0)) {\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }\nLAB_00067375:\n    if ((bVar2 & 1) == 0) {\n      return;\n    }\n  }\n  else {\n    if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }\n    local_48[0xb] = iVar3;\n    DAT_001d1278 = xmalloc(iVar6);\n    DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);\n    puVar24 = DAT_001d1218;\n    memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);\n    iVar6 = puVar24[0xb];\n    DAT_001d1258 = 0;\n    DAT_001d125c = 0x10000;\n    DAT_001d126c = 0;\n    DAT_001d1268 = 0;\n    DAT_001d1264 = 0;\n    if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }\njoined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }\n  }\n  DAT_001d1260 = (char *)*puVar24;\n  if (DAT_001d1260 == (char *)0x0) {\n    DAT_001d1260 = (char *)*param_1;\n    cVar22 = *DAT_001d1260;\n    if (cVar22 != '\0') {\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }\n  }\n  if ((DAT_001d1264 == 0) || (DAT_001d1258 <= DAT_001d126c)) {\n    DAT_001d125c = 1;\n    DAT_001d1258 = DAT_001d126c;\n  }\n  else {\n    iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;\n    if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }\n  }\n  DAT_001d1270 = (DAT_001d1258 - DAT_001d125c) + 1;\n  puVar11 = (undefined4 *)xmalloc(DAT_001d1270 * 4);\n  puVar24 = puVar11 + DAT_001d1270;\n  DAT_001d1254 = puVar11;\n  if (0 < DAT_001d1270) {\n    do {\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    } while (puVar24 != puVar11);\n  }\n  local_48 = DAT_001d1218;\n  local_3c = DAT_001d125c;\n  if ((int)DAT_001d1218[0xb] < 1) {\n    local_44 = 0;\n    iVar6 = DAT_001d125c;\n    goto LAB_00067580;\n  }\n  local_44 = 0;\n  local_40 = (char *)0x0;\n  iVar3 = DAT_001d1218[0xc];\n  do {\n    iVar6 = (int)local_40 * 0x1c;\n    puVar24 = (undefined4 *)(iVar3 + iVar6);\n    if ((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))\n    {\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }\n    else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }\n    if (*(char *)(puVar24 + 6) != '\0') {\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }\n    pvVar4 = DAT_001d1274;\n    puVar24 = DAT_001d1254;\n    local_40 = (char *)((int)local_40 + 1);\n  } while ((int)local_40 < local_48[0xb]);\n  iVar6 = local_3c;\n  if (local_48[0xb] < 1) goto LAB_00067580;\n  iVar18 = 0;\n  piVar13 = (int *)(iVar3 + 0xc);\n  do {\n    if (*(int *)((int)pvVar4 + iVar18 * 4) == 0) {\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }\n    iVar18 = iVar18 + 1;\n    piVar13 = piVar13 + 7;\n    if (local_48[0xb] <= iVar18) {\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }\n  } while( true );\ncode_r0x00066da5:\n  piVar13 = (int *)*piVar13;\n  **(uint **)(iVar6 + 0x14) = *puVar1;\n  goto joined_r0x00066d64;\n}" primitive_type (function_declarator "FUN_00066ca0(undefined4 *param_1,byte *param_2)" identifier (parameter_list "(undefined4 *param_1,byte *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  byte bVar2;\n  int iVar3;\n  void *pvVar4;\n  undefined *puVar5;\n  int iVar6;\n  size_t sVar7;\n  char *pcVar8;\n  char *pcVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined4 uVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  char *pcVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int iVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  int iVar21;\n  char cVar22;\n  byte *pbVar23;\n  undefined4 *puVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  bool bVar28;\n  byte bVar29;\n  int *local_48;\n  uint local_44;\n  char *local_40;\n  int local_3c;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar29 = 0;\n  uStack_14 = 0x66ca9;\n  FUN_00063a00(*(undefined4 *)param_1[1]);\n  FUN_00066c30(param_1);\n  if (DAT_001d1218 == (undefined4 *)0x0) {\n    DAT_001d1218 = (undefined4 *)FUN_000589a0();\n  }\n  for (iVar6 = *(int *)(param_2 + 0x3c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x9c)) {\n    iVar3 = bfd_get_section_by_name(iVar6,".drectve");\n    if (iVar3 != 0) {\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }\n  }\n  piVar13 = (int *)DAT_001d1218[0x12];\njoined_r0x00066d64:\n  if (piVar13 != (int *)0x0) {\n    do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );\n  }\n  bVar2 = *param_2;\n  if ((bVar2 & 2) == 0) {\n    if (DAT_001d1218[0xb] != 0) {\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }\n    puVar24 = DAT_001d1218;\n    if ((DAT_001d1214 != 0) && (DAT_001d1210 == 0)) {\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }\nLAB_00067375:\n    if ((bVar2 & 1) == 0) {\n      return;\n    }\n  }\n  else {\n    if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }\n    local_48[0xb] = iVar3;\n    DAT_001d1278 = xmalloc(iVar6);\n    DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);\n    puVar24 = DAT_001d1218;\n    memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);\n    iVar6 = puVar24[0xb];\n    DAT_001d1258 = 0;\n    DAT_001d125c = 0x10000;\n    DAT_001d126c = 0;\n    DAT_001d1268 = 0;\n    DAT_001d1264 = 0;\n    if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }\njoined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }\n  }\n  DAT_001d1260 = (char *)*puVar24;\n  if (DAT_001d1260 == (char *)0x0) {\n    DAT_001d1260 = (char *)*param_1;\n    cVar22 = *DAT_001d1260;\n    if (cVar22 != '\0') {\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }\n  }\n  if ((DAT_001d1264 == 0) || (DAT_001d1258 <= DAT_001d126c)) {\n    DAT_001d125c = 1;\n    DAT_001d1258 = DAT_001d126c;\n  }\n  else {\n    iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;\n    if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }\n  }\n  DAT_001d1270 = (DAT_001d1258 - DAT_001d125c) + 1;\n  puVar11 = (undefined4 *)xmalloc(DAT_001d1270 * 4);\n  puVar24 = puVar11 + DAT_001d1270;\n  DAT_001d1254 = puVar11;\n  if (0 < DAT_001d1270) {\n    do {\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    } while (puVar24 != puVar11);\n  }\n  local_48 = DAT_001d1218;\n  local_3c = DAT_001d125c;\n  if ((int)DAT_001d1218[0xb] < 1) {\n    local_44 = 0;\n    iVar6 = DAT_001d125c;\n    goto LAB_00067580;\n  }\n  local_44 = 0;\n  local_40 = (char *)0x0;\n  iVar3 = DAT_001d1218[0xc];\n  do {\n    iVar6 = (int)local_40 * 0x1c;\n    puVar24 = (undefined4 *)(iVar3 + iVar6);\n    if ((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))\n    {\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }\n    else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }\n    if (*(char *)(puVar24 + 6) != '\0') {\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }\n    pvVar4 = DAT_001d1274;\n    puVar24 = DAT_001d1254;\n    local_40 = (char *)((int)local_40 + 1);\n  } while ((int)local_40 < local_48[0xb]);\n  iVar6 = local_3c;\n  if (local_48[0xb] < 1) goto LAB_00067580;\n  iVar18 = 0;\n  piVar13 = (int *)(iVar3 + 0xc);\n  do {\n    if (*(int *)((int)pvVar4 + iVar18 * 4) == 0) {\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }\n    iVar18 = iVar18 + 1;\n    piVar13 = piVar13 + 7;\n    if (local_48[0xb] <= iVar18) {\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }\n  } while( true );\ncode_r0x00066da5:\n  piVar13 = (int *)*piVar13;\n  **(uint **)(iVar6 + 0x14) = *puVar1;\n  goto joined_r0x00066d64;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "char cVar22;" primitive_type identifier ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "undefined4 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "bool bVar27;" primitive_type identifier ;) (declaration "bool bVar28;" primitive_type identifier ;) (declaration "byte bVar29;" type_identifier identifier ;) (declaration "int *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "char *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "int local_3c;" primitive_type 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 "bVar29 = 0;" (assignment_expression "bVar29 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x66ca9;" (assignment_expression "uStack_14 = 0x66ca9" identifier = number_literal) ;) (expression_statement "FUN_00063a00(*(undefined4 *)param_1[1]);" (call_expression "FUN_00063a00(*(undefined4 *)param_1[1])" identifier (argument_list "(*(undefined4 *)param_1[1])" ( (pointer_expression "*(undefined4 *)param_1[1]" * (cast_expression "(undefined4 *)param_1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ))) ;) (expression_statement "FUN_00066c30(param_1);" (call_expression "FUN_00066c30(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (if_statement "if (DAT_001d1218 == (undefined4 *)0x0) {\n    DAT_001d1218 = (undefined4 *)FUN_000589a0();\n  }" if (parenthesized_expression "(DAT_001d1218 == (undefined4 *)0x0)" ( (binary_expression "DAT_001d1218 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_001d1218 = (undefined4 *)FUN_000589a0();\n  }" { (expression_statement "DAT_001d1218 = (undefined4 *)FUN_000589a0();" (assignment_expression "DAT_001d1218 = (undefined4 *)FUN_000589a0()" identifier = (cast_expression "(undefined4 *)FUN_000589a0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000589a0()" identifier (argument_list "()" ( ))))) ;) })) (for_statement "for (iVar6 = *(int *)(param_2 + 0x3c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x9c)) {\n    iVar3 = bfd_get_section_by_name(iVar6,".drectve");\n    if (iVar3 != 0) {\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }\n  }" for ( (assignment_expression "iVar6 = *(int *)(param_2 + 0x3c)" identifier = (pointer_expression "*(int *)(param_2 + 0x3c)" * (cast_expression "(int *)(param_2 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3c)" ( (binary_expression "param_2 + 0x3c" identifier + number_literal) ))))) ; (binary_expression "iVar6 != 0" identifier != number_literal) ; (assignment_expression "iVar6 = *(int *)(iVar6 + 0x9c)" identifier = (pointer_expression "*(int *)(iVar6 + 0x9c)" * (cast_expression "(int *)(iVar6 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x9c)" ( (binary_expression "iVar6 + 0x9c" identifier + number_literal) ))))) ) (compound_statement "{\n    iVar3 = bfd_get_section_by_name(iVar6,".drectve");\n    if (iVar3 != 0) {\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }\n  }" { (expression_statement "iVar3 = bfd_get_section_by_name(iVar6,".drectve");" (assignment_expression "iVar3 = bfd_get_section_by_name(iVar6,".drectve")" identifier = (call_expression "bfd_get_section_by_name(iVar6,".drectve")" identifier (argument_list "(iVar6,".drectve")" ( identifier , (string_literal "".drectve"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }" { (expression_statement "iVar18 = *(int *)(iVar3 + 0x2c);" (assignment_expression "iVar18 = *(int *)(iVar3 + 0x2c)" identifier = (pointer_expression "*(int *)(iVar3 + 0x2c)" * (cast_expression "(int *)(iVar3 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "pvVar4 = (void *)xmalloc(iVar18);" (assignment_expression "pvVar4 = (void *)xmalloc(iVar18)" identifier = (cast_expression "(void *)xmalloc(iVar18)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar18)" identifier (argument_list "(iVar18)" ( identifier ))))) ;) (expression_statement "bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);" (call_expression "bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f)" identifier (argument_list "(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , (binary_expression "iVar18 >> 0x1f" identifier >> number_literal) ))) ;) (expression_statement "FUN_0005a570(DAT_001d1218,pvVar4,iVar18);" (call_expression "FUN_0005a570(DAT_001d1218,pvVar4,iVar18)" identifier (argument_list "(DAT_001d1218,pvVar4,iVar18)" ( identifier , identifier , identifier ))) ;) (expression_statement "free(pvVar4);" (call_expression "free(pvVar4)" identifier (argument_list "(pvVar4)" ( identifier ))) ;) })) })) (expression_statement "piVar13 = (int *)DAT_001d1218[0x12];" (assignment_expression "piVar13 = (int *)DAT_001d1218[0x12]" identifier = (cast_expression "(int *)DAT_001d1218[0x12]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_001d1218[0x12]" identifier [ number_literal ]))) ;) (labeled_statement "joined_r0x00066d64:\n  if (piVar13 != (int *)0x0) {\n    do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (piVar13 != (int *)0x0) {\n    do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );\n  }" if (parenthesized_expression "(piVar13 != (int *)0x0)" ( (binary_expression "piVar13 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );\n  }" { (do_statement "do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );" do (compound_statement "{\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    }" { (expression_statement "iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);" (assignment_expression "iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0)" ( (pointer_expression "*(undefined4 *)(param_2 + 0x20)" * (cast_expression "(undefined4 *)(param_2 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) , (subscript_expression "piVar13[1]" identifier [ number_literal ]) , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }" if (parenthesized_expression "((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05'))" ( (binary_expression "(iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)(iVar6 + 0xc) == '\x05')" ( (binary_expression "*(char *)(iVar6 + 0xc) == '\x05'" (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 "'\x05'" ' escape_sequence ')) ))) )) (compound_statement "{\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }" { (expression_statement "puVar1 = (uint *)(piVar13 + 2);" (assignment_expression "puVar1 = (uint *)(piVar13 + 2)" identifier = (cast_expression "(uint *)(piVar13 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar13 + 2)" ( (binary_expression "piVar13 + 2" identifier + number_literal) )))) ;) (if_statement "if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;" if (parenthesized_expression "(**(uint **)(iVar6 + 0x14) < *puVar1)" ( (binary_expression "**(uint **)(iVar6 + 0x14) < *puVar1" (pointer_expression "**(uint **)(iVar6 + 0x14)" * (pointer_expression "*(uint **)(iVar6 + 0x14)" * (cast_expression "(uint **)(iVar6 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) ))))) < (pointer_expression "*puVar1" * identifier)) )) (goto_statement "goto code_r0x00066da5;" goto statement_identifier ;)) })) (expression_statement "piVar13 = (int *)*piVar13;" (assignment_expression "piVar13 = (int *)*piVar13" identifier = (cast_expression "(int *)*piVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;) (if_statement "if (piVar13 == (int *)0x0) break;" if (parenthesized_expression "(piVar13 == (int *)0x0)" ( (binary_expression "piVar13 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (expression_statement "bVar2 = *param_2;" (assignment_expression "bVar2 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if ((bVar2 & 2) == 0) {\n    if (DAT_001d1218[0xb] != 0) {\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }\n    puVar24 = DAT_001d1218;\n    if ((DAT_001d1214 != 0) && (DAT_001d1210 == 0)) {\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }\nLAB_00067375:\n    if ((bVar2 & 1) == 0) {\n      return;\n    }\n  }\n  else {\n    if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }\n    local_48[0xb] = iVar3;\n    DAT_001d1278 = xmalloc(iVar6);\n    DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);\n    puVar24 = DAT_001d1218;\n    memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);\n    iVar6 = puVar24[0xb];\n    DAT_001d1258 = 0;\n    DAT_001d125c = 0x10000;\n    DAT_001d126c = 0;\n    DAT_001d1268 = 0;\n    DAT_001d1264 = 0;\n    if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }\njoined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }\n  }" if (parenthesized_expression "((bVar2 & 2) == 0)" ( (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" ( (binary_expression "bVar2 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    if (DAT_001d1218[0xb] != 0) {\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }\n    puVar24 = DAT_001d1218;\n    if ((DAT_001d1214 != 0) && (DAT_001d1210 == 0)) {\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }\nLAB_00067375:\n    if ((bVar2 & 1) == 0) {\n      return;\n    }\n  }" { (if_statement "if (DAT_001d1218[0xb] != 0) {\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }" if (parenthesized_expression "(DAT_001d1218[0xb] != 0)" ( (binary_expression "DAT_001d1218[0xb] != 0" (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }" { (if_statement "if (DAT_001d1214 != 0) goto LAB_00066fad;" if (parenthesized_expression "(DAT_001d1214 != 0)" ( (binary_expression "DAT_001d1214 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00066fad;" goto statement_identifier ;)) (expression_statement "iVar6 = DAT_001d1218[0xb];" (assignment_expression "iVar6 = DAT_001d1218[0xb]" identifier = (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ])) ;) (if_statement "if (DAT_001d120c != 0) goto LAB_00066fde;" if (parenthesized_expression "(DAT_001d120c != 0)" ( (binary_expression "DAT_001d120c != 0" identifier != number_literal) )) (goto_statement "goto LAB_00066fde;" goto statement_identifier ;)) (goto_statement "goto LAB_000671fd;" goto statement_identifier ;) })) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" identifier = identifier) ;) (if_statement "if ((DAT_001d1214 != 0) && (DAT_001d1210 == 0)) {\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }" if (parenthesized_expression "((DAT_001d1214 != 0) && (DAT_001d1210 == 0))" ( (binary_expression "(DAT_001d1214 != 0) && (DAT_001d1210 == 0)" (parenthesized_expression "(DAT_001d1214 != 0)" ( (binary_expression "DAT_001d1214 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_001d1210 == 0)" ( (binary_expression "DAT_001d1210 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }" { (labeled_statement "LAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);" statement_identifier : (expression_statement "local_44 = *(uint *)(param_2 + 0x3c);" (assignment_expression "local_44 = *(uint *)(param_2 + 0x3c)" identifier = (pointer_expression "*(uint *)(param_2 + 0x3c)" * (cast_expression "(uint *)(param_2 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3c)" ( (binary_expression "param_2 + 0x3c" identifier + number_literal) ))))) ;)) (if_statement "if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }" if (parenthesized_expression "(local_44 != 0)" ( (binary_expression "local_44 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }" { (expression_statement "puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;" (assignment_expression "puVar5 = PTR__bfd_std_section_001cefbc + 0xc0" identifier = (binary_expression "PTR__bfd_std_section_001cefbc + 0xc0" identifier + number_literal)) ;) (while_statement "while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }" while (parenthesized_expression "(iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0)" ( (comma_expression "iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0" (assignment_expression "iVar6 = bfd_generic_link_read_symbols(local_44)" identifier = (call_expression "bfd_generic_link_read_symbols(local_44)" identifier (argument_list "(local_44)" ( identifier )))) , (binary_expression "iVar6 != 0" identifier != number_literal)) )) (compound_statement "{\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }" { (if_statement "if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }" if (parenthesized_expression "(0 < *(int *)(local_44 + 0x7c))" ( (binary_expression "0 < *(int *)(local_44 + 0x7c)" number_literal < (pointer_expression "*(int *)(local_44 + 0x7c)" * (cast_expression "(int *)(local_44 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44 + 0x7c)" ( (binary_expression "local_44 + 0x7c" identifier + number_literal) ))))) )) (compound_statement "{\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }" { (expression_statement "piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);" (assignment_expression "piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c)" identifier = (binary_expression "*(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c)" (pointer_expression "*(int **)(local_44 + 0x78)" * (cast_expression "(int **)(local_44 + 0x78)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_44 + 0x78)" ( (binary_expression "local_44 + 0x78" identifier + number_literal) )))) + (pointer_expression "*(int *)(local_44 + 0x7c)" * (cast_expression "(int *)(local_44 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44 + 0x7c)" ( (binary_expression "local_44 + 0x7c" identifier + number_literal) )))))) ;) (expression_statement "local_48 = *(int **)(local_44 + 0x78);" (assignment_expression "local_48 = *(int **)(local_44 + 0x78)" identifier = (pointer_expression "*(int **)(local_44 + 0x78)" * (cast_expression "(int **)(local_44 + 0x78)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_44 + 0x78)" ( (binary_expression "local_44 + 0x78" identifier + number_literal) ))))) ;) (do_statement "do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);" do (compound_statement "{\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            }" { (while_statement "while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }" while (parenthesized_expression "((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0)))))" ( (parenthesized_expression "(iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))" ( (comma_expression "iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0)))" (assignment_expression "iVar6 = *local_48" identifier = (pointer_expression "*local_48" * identifier)) , (binary_expression "*(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0)))" (binary_expression "*(undefined **)(iVar6 + 0x14) == puVar5" (pointer_expression "*(undefined **)(iVar6 + 0x14)" * (cast_expression "(undefined **)(iVar6 + 0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) == identifier) || (parenthesized_expression "(((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0)))" ( (parenthesized_expression "((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))" ( (binary_expression "(*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0)" (binary_expression "(*(uint *)(iVar6 + 0x10) & 2) == 0" (parenthesized_expression "(*(uint *)(iVar6 + 0x10) & 2)" ( (binary_expression "*(uint *)(iVar6 + 0x10) & 2" (pointer_expression "*(uint *)(iVar6 + 0x10)" * (cast_expression "(uint *)(iVar6 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) & number_literal) )) == number_literal) && (parenthesized_expression "(*(uint *)(iVar6 + 0x10) != 0)" ( (binary_expression "*(uint *)(iVar6 + 0x10) != 0" (pointer_expression "*(uint *)(iVar6 + 0x10)" * (cast_expression "(uint *)(iVar6 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) != number_literal) ))) )) )))) )) )) (compound_statement "{\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }" { (labeled_statement "LAB_00066f48:\n                local_48 = local_48 + 1;" statement_identifier : (expression_statement "local_48 = local_48 + 1;" (assignment_expression "local_48 = local_48 + 1" identifier = (binary_expression "local_48 + 1" identifier + number_literal)) ;)) (if_statement "if (piVar13 == local_48) goto LAB_00067678;" if (parenthesized_expression "(piVar13 == local_48)" ( (binary_expression "piVar13 == local_48" identifier == identifier) )) (goto_statement "goto LAB_00067678;" goto statement_identifier ;)) })) (expression_statement "bVar26 = DAT_001d1478 == 0;" (assignment_expression "bVar26 = DAT_001d1478 == 0" identifier = (binary_expression "DAT_001d1478 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }" { (expression_statement "iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));" (assignment_expression "iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4))" identifier = (call_expression "bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4))" identifier (argument_list "(DAT_001d1478,*(undefined4 *)(iVar6 + 4))" ( identifier , (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 "bVar26 = iVar6 == 0;" (assignment_expression "bVar26 = iVar6 == 0" identifier = (binary_expression "iVar6 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar26) goto LAB_00066f48;" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (goto_statement "goto LAB_00066f48;" goto statement_identifier ;)) (expression_statement "iVar6 = *local_48;" (assignment_expression "iVar6 = *local_48" identifier = (pointer_expression "*local_48" * identifier)) ;) })) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "pbVar19 = *(byte **)(iVar6 + 4);" (assignment_expression "pbVar19 = *(byte **)(iVar6 + 4)" identifier = (pointer_expression "*(byte **)(iVar6 + 4)" * (cast_expression "(byte **)(iVar6 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = 6;" (assignment_expression "iVar6 = 6" identifier = number_literal) ;) (expression_statement "pbVar20 = pbVar19;" (assignment_expression "pbVar20 = pbVar19" identifier = identifier) ;) (expression_statement "pbVar23 = (byte *)0x1adaf4;" (assignment_expression "pbVar23 = (byte *)0x1adaf4" identifier = (cast_expression "(byte *)0x1adaf4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);" do (compound_statement "{\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -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 "bVar25 = *pbVar20 < *pbVar23;" (assignment_expression "bVar25 = *pbVar20 < *pbVar23" identifier = (binary_expression "*pbVar20 < *pbVar23" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "bVar26 = *pbVar20 == *pbVar23;" (assignment_expression "bVar26 = *pbVar20 == *pbVar23" identifier = (binary_expression "*pbVar20 == *pbVar23" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar29 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar29 * -2" identifier + (binary_expression "(uint)bVar29 * -2" (cast_expression "(uint)bVar29" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar29 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar29 * -2" identifier + (binary_expression "(uint)bVar29 * -2" (cast_expression "(uint)bVar29" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;" if (parenthesized_expression "((!bVar25 && !bVar26) == bVar25)" ( (binary_expression "(!bVar25 && !bVar26) == bVar25" (parenthesized_expression "(!bVar25 && !bVar26)" ( (binary_expression "!bVar25 && !bVar26" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_00066f48;" goto statement_identifier ;)) (expression_statement "sVar7 = strlen((char *)pbVar19);" (assignment_expression "sVar7 = strlen((char *)pbVar19)" identifier = (call_expression "strlen((char *)pbVar19)" identifier (argument_list "((char *)pbVar19)" ( (cast_expression "(char *)pbVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pcVar8 = (char *)xmalloc(sVar7 + 7);" (assignment_expression "pcVar8 = (char *)xmalloc(sVar7 + 7)" identifier = (cast_expression "(char *)xmalloc(sVar7 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar7 + 7)" identifier (argument_list "(sVar7 + 7)" ( (binary_expression "sVar7 + 7" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar8,"%s%s","__imp_",pbVar19);" (call_expression "sprintf(pcVar8,"%s%s","__imp_",pbVar19)" identifier (argument_list "(pcVar8,"%s%s","__imp_",pbVar19)" ( identifier , (string_literal ""%s%s"" " string_content ") , (string_literal ""__imp_"" " string_content ") , identifier ))) ;) (expression_statement "iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);" (assignment_expression "iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0)" ( (pointer_expression "*(undefined4 *)(param_2 + 0x20)" * (cast_expression "(undefined4 *)(param_2 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) , identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "free(pcVar8);" (call_expression "free(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (if_statement "if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;" if (parenthesized_expression "((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03'))" ( (binary_expression "(iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')" (parenthesized_expression "(iVar6 != 0)" ( (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 ')) ))) )) (goto_statement "goto LAB_00066f48;" goto statement_identifier ;)) (if_statement "if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }" if (parenthesized_expression "(*(int *)(DAT_001d127c + 0x14) != 0)" ( (binary_expression "*(int *)(DAT_001d127c + 0x14) != 0" (pointer_expression "*(int *)(DAT_001d127c + 0x14)" * (cast_expression "(int *)(DAT_001d127c + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d127c + 0x14)" ( (binary_expression "DAT_001d127c + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }" { (expression_statement "pbVar19 = pbVar19 + (*pbVar19 == 0x5f);" (assignment_expression "pbVar19 = pbVar19 + (*pbVar19 == 0x5f)" identifier = (binary_expression "pbVar19 + (*pbVar19 == 0x5f)" identifier + (parenthesized_expression "(*pbVar19 == 0x5f)" ( (binary_expression "*pbVar19 == 0x5f" (pointer_expression "*pbVar19" * identifier) == number_literal) )))) ;) })) (expression_statement "iVar6 = FUN_00062820(pbVar19);" (assignment_expression "iVar6 = FUN_00062820(pbVar19)" identifier = (call_expression "FUN_00062820(pbVar19)" identifier (argument_list "(pbVar19)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) goto LAB_00066f48;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00066f48;" goto statement_identifier ;)) (expression_statement "local_20[0] = 0;" (assignment_expression "local_20[0] = 0" (subscript_expression "local_20[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);" (assignment_expression "iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20)" identifier = (call_expression "FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20)" identifier (argument_list "(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20)" ( identifier , identifier , number_literal , number_literal , number_literal , identifier )))) ;) (if_statement "if (local_20[0] != 0) goto LAB_00066f48;" if (parenthesized_expression "(local_20[0] != 0)" ( (binary_expression "local_20[0] != 0" (subscript_expression "local_20[0]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00066f48;" goto statement_identifier ;)) (expression_statement "piVar17 = local_48 + 1;" (assignment_expression "piVar17 = local_48 + 1" identifier = (binary_expression "local_48 + 1" identifier + number_literal)) ;) (expression_statement "*(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;" (assignment_expression "*(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1" (pointer_expression "*(byte *)(iVar6 + 0x17)" * (cast_expression "(byte *)(iVar6 + 0x17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x17)" ( (binary_expression "iVar6 + 0x17" identifier + number_literal) )))) = (binary_expression "((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1" (parenthesized_expression "((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1)" ( (binary_expression "(byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1" (call_expression "(byte)(*(uint *)(*local_48 + 0x10) >> 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(uint *)(*local_48 + 0x10) >> 3)" ( (binary_expression "*(uint *)(*local_48 + 0x10) >> 3" (pointer_expression "*(uint *)(*local_48 + 0x10)" * (cast_expression "(uint *)(*local_48 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_48 + 0x10)" ( (binary_expression "*local_48 + 0x10" (pointer_expression "*local_48" * identifier) + number_literal) )))) >> number_literal) ))) ^ number_literal) )) & number_literal)) ;) (expression_statement "local_48 = piVar17;" (assignment_expression "local_48 = piVar17" identifier = identifier) ;) }) while (parenthesized_expression "(piVar13 != piVar17)" ( (binary_expression "piVar13 != piVar17" identifier != identifier) )) ;) })) (labeled_statement "LAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);" statement_identifier : (expression_statement "local_44 = *(int *)(local_44 + 0x9c);" (assignment_expression "local_44 = *(int *)(local_44 + 0x9c)" identifier = (pointer_expression "*(int *)(local_44 + 0x9c)" * (cast_expression "(int *)(local_44 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44 + 0x9c)" ( (binary_expression "local_44 + 0x9c" identifier + number_literal) ))))) ;)) (if_statement "if (local_44 == 0) goto LAB_00066fbb;" if (parenthesized_expression "(local_44 == 0)" ( (binary_expression "local_44 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00066fbb;" goto statement_identifier ;)) })) (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,local_44);" (call_expression "FUN_00034d20(uVar14,local_44)" identifier (argument_list "(uVar14,local_44)" ( identifier , identifier ))) ;) (expression_statement "iVar6 = DAT_001d1218[0xb];" (assignment_expression "iVar6 = DAT_001d1218[0xb]" identifier = (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ])) ;) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" identifier = identifier) ;) (goto_statement "goto joined_r0x00067b8d;" goto statement_identifier ;) })) (labeled_statement "LAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];" statement_identifier : (expression_statement "iVar6 = DAT_001d1218[0xb];" (assignment_expression "iVar6 = DAT_001d1218[0xb]" identifier = (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ])) ;)) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" identifier = identifier) ;) (if_statement "if (iVar6 != 0) goto LAB_00066fd0;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00066fd0;" goto statement_identifier ;)) (goto_statement "goto LAB_0006736e;" goto statement_identifier ;) })) (labeled_statement "LAB_00067375:\n    if ((bVar2 & 1) == 0) {\n      return;\n    }" statement_identifier : (if_statement "if ((bVar2 & 1) == 0) {\n      return;\n    }" if (parenthesized_expression "((bVar2 & 1) == 0)" ( (binary_expression "(bVar2 & 1) == 0" (parenthesized_expression "(bVar2 & 1)" ( (binary_expression "bVar2 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) }))) }) (else_clause "else {\n    if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }\n    local_48[0xb] = iVar3;\n    DAT_001d1278 = xmalloc(iVar6);\n    DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);\n    puVar24 = DAT_001d1218;\n    memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);\n    iVar6 = puVar24[0xb];\n    DAT_001d1258 = 0;\n    DAT_001d125c = 0x10000;\n    DAT_001d126c = 0;\n    DAT_001d1268 = 0;\n    DAT_001d1264 = 0;\n    if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }\njoined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }\n  }" else (compound_statement "{\n    if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }\n    local_48[0xb] = iVar3;\n    DAT_001d1278 = xmalloc(iVar6);\n    DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);\n    puVar24 = DAT_001d1218;\n    memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);\n    iVar6 = puVar24[0xb];\n    DAT_001d1258 = 0;\n    DAT_001d125c = 0x10000;\n    DAT_001d126c = 0;\n    DAT_001d1268 = 0;\n    DAT_001d1264 = 0;\n    if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }\njoined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }\n  }" { (if_statement "if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }" if (parenthesized_expression "((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0))" ( (binary_expression "(DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)" (parenthesized_expression "(DAT_001d1214 != 0)" ( (binary_expression "DAT_001d1214 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar6 = DAT_001d1218[0xb], iVar6 == 0)" ( (comma_expression "iVar6 = DAT_001d1218[0xb], iVar6 == 0" (assignment_expression "iVar6 = DAT_001d1218[0xb]" identifier = (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ])) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }" { (labeled_statement "LAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;" statement_identifier : (if_statement "if (DAT_001d1210 == 0) goto LAB_00066df0;" if (parenthesized_expression "(DAT_001d1210 == 0)" ( (binary_expression "DAT_001d1210 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00066df0;" goto statement_identifier ;))) (goto_statement "goto LAB_00066fbb;" goto statement_identifier ;) })) (labeled_statement "LAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }" statement_identifier : (if_statement "if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }" if (parenthesized_expression "(DAT_001d120c == 0)" ( (binary_expression "DAT_001d120c == 0" identifier == number_literal) )) (compound_statement "{\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }" { (labeled_statement "LAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];" statement_identifier : (expression_statement "sVar7 = DAT_001d1218[0xb];" (assignment_expression "sVar7 = DAT_001d1218[0xb]" identifier = (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ])) ;)) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" identifier = identifier) ;) (if_statement "if (DAT_001d1208 == 0) goto LAB_00067212;" if (parenthesized_expression "(DAT_001d1208 == 0)" ( (binary_expression "DAT_001d1208 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00067212;" goto statement_identifier ;)) (labeled_statement "LAB_0006709d:\n      bVar26 = false;" statement_identifier : (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;)) (expression_statement "bVar25 = sVar7 == 0;" (assignment_expression "bVar25 = sVar7 == 0" identifier = (binary_expression "sVar7 == 0" identifier == number_literal)) ;) (if_statement "if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }" if (parenthesized_expression "(0 < (int)sVar7)" ( (binary_expression "0 < (int)sVar7" number_literal < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }" { (expression_statement "local_40 = (char *)0x0;" (assignment_expression "local_40 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (do_statement "do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);" do (compound_statement "{\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        }" { (expression_statement "pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);" (assignment_expression "pbVar19 = *(byte **)(local_48[0xc] + (int)local_40)" identifier = (pointer_expression "*(byte **)(local_48[0xc] + (int)local_40)" * (cast_expression "(byte **)(local_48[0xc] + (int)local_40)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_48[0xc] + (int)local_40)" ( (binary_expression "local_48[0xc] + (int)local_40" (subscript_expression "local_48[0xc]" identifier [ number_literal ]) + (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "iVar6 = 6;" (assignment_expression "iVar6 = 6" identifier = number_literal) ;) (expression_statement "pbVar20 = pbVar19;" (assignment_expression "pbVar20 = pbVar19" identifier = identifier) ;) (expression_statement "pbVar23 = (byte *)0x1adaf4;" (assignment_expression "pbVar23 = (byte *)0x1adaf4" identifier = (cast_expression "(byte *)0x1adaf4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);" do (compound_statement "{\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -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 "bVar26 = *pbVar20 < *pbVar23;" (assignment_expression "bVar26 = *pbVar20 < *pbVar23" identifier = (binary_expression "*pbVar20 < *pbVar23" (pointer_expression "*pbVar20" * identifier) < (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "bVar25 = *pbVar20 == *pbVar23;" (assignment_expression "bVar25 = *pbVar20 == *pbVar23" identifier = (binary_expression "*pbVar20 == *pbVar23" (pointer_expression "*pbVar20" * identifier) == (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar29 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar29 * -2" identifier + (binary_expression "(uint)bVar29 * -2" (cast_expression "(uint)bVar29" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar29 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar29 * -2" identifier + (binary_expression "(uint)bVar29 * -2" (cast_expression "(uint)bVar29" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar25)" ( identifier )) ;) (if_statement "if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }" if (parenthesized_expression "(((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0))" ( (binary_expression "((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)" (parenthesized_expression "((!bVar26 && !bVar25) != bVar26)" ( (binary_expression "(!bVar26 && !bVar25) != bVar26" (parenthesized_expression "(!bVar26 && !bVar25)" ( (binary_expression "!bVar26 && !bVar25" (unary_expression "!bVar26" ! identifier) && (unary_expression "!bVar25" ! identifier)) )) != identifier) )) && (parenthesized_expression "(pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)" ( (comma_expression "pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0" (assignment_expression "pcVar8 = strchr((char *)pbVar19,0x40)" identifier = (call_expression "strchr((char *)pbVar19,0x40)" identifier (argument_list "((char *)pbVar19,0x40)" ( (cast_expression "(char *)pbVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) , (binary_expression "pcVar8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }" { (expression_statement "local_20[0] = 1;" (assignment_expression "local_20[0] = 1" (subscript_expression "local_20[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));" (assignment_expression "pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40))" identifier = (cast_expression "(char *)xstrdup(pbVar19 + (*pbVar19 == 0x40))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pbVar19 + (*pbVar19 == 0x40))" identifier (argument_list "(pbVar19 + (*pbVar19 == 0x40))" ( (binary_expression "pbVar19 + (*pbVar19 == 0x40)" identifier + (parenthesized_expression "(*pbVar19 == 0x40)" ( (binary_expression "*pbVar19 == 0x40" (pointer_expression "*pbVar19" * identifier) == number_literal) ))) ))))) ;) (expression_statement "pcVar9 = strchr(pcVar8,0x40);" (assignment_expression "pcVar9 = strchr(pcVar8,0x40)" identifier = (call_expression "strchr(pcVar8,0x40)" identifier (argument_list "(pcVar8,0x40)" ( identifier , number_literal )))) ;) (expression_statement "*pcVar9 = '\0';" (assignment_expression "*pcVar9 = '\0'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar6 = FUN_00062820(pcVar8);" (assignment_expression "iVar6 = FUN_00062820(pcVar8)" identifier = (call_expression "FUN_00062820(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier )))) ;) (if_statement "if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }" { (expression_statement "FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);" (call_expression "FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20)" identifier (argument_list "(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40)" * (cast_expression "(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1218[0xc] + 4 + (int)local_40)" ( (binary_expression "DAT_001d1218[0xc] + 4 + (int)local_40" (binary_expression "DAT_001d1218[0xc] + 4" (subscript_expression "DAT_001d1218[0xc]" identifier [ number_literal ]) + number_literal) + (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier)) )))) , number_literal , number_literal , identifier ))) ;) })) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" identifier = identifier) ;) (if_statement "if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\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              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }" { (expression_statement "free(pcVar8);" (call_expression "free(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" identifier = identifier) ;) })) })) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" identifier = (binary_expression "local_44 + 1" identifier + number_literal)) ;) (expression_statement "sVar7 = local_48[0xb];" (assignment_expression "sVar7 = local_48[0xb]" identifier = (subscript_expression "local_48[0xb]" identifier [ number_literal ])) ;) (expression_statement "local_40 = (char *)((int)local_40 + 0x1c);" (assignment_expression "local_40 = (char *)((int)local_40 + 0x1c)" identifier = (cast_expression "(char *)((int)local_40 + 0x1c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_40 + 0x1c)" ( (binary_expression "(int)local_40 + 0x1c" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar26 = local_44 < sVar7;" (assignment_expression "bVar26 = local_44 < sVar7" identifier = (binary_expression "local_44 < sVar7" identifier < identifier)) ;) (expression_statement "bVar25 = local_44 == sVar7;" (assignment_expression "bVar25 = local_44 == sVar7" identifier = (binary_expression "local_44 == sVar7" identifier == identifier)) ;) }) while (parenthesized_expression "((int)local_44 < (int)sVar7)" ( (binary_expression "(int)local_44 < (int)sVar7" (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (goto_statement "goto LAB_00067212;" goto statement_identifier ;) })) (labeled_statement "LAB_00067c38:\n      iVar6 = 0;" statement_identifier : (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;)) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }" else (compound_statement "{\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }" { (labeled_statement "LAB_00066fde:\n      bVar26 = false;" statement_identifier : (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;)) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" identifier = identifier) ;) (if_statement "if (iVar6 < 1) goto LAB_000671fd;" if (parenthesized_expression "(iVar6 < 1)" ( (binary_expression "iVar6 < 1" identifier < number_literal) )) (goto_statement "goto LAB_000671fd;" goto statement_identifier ;)) (do_statement "do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);" do (compound_statement "{\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      }" { (expression_statement "iVar6 = iVar3 * 0x1c;" (assignment_expression "iVar6 = iVar3 * 0x1c" identifier = (binary_expression "iVar3 * 0x1c" identifier * number_literal)) ;) (expression_statement "pcVar8 = *(char **)(local_48[0xc] + iVar6);" (assignment_expression "pcVar8 = *(char **)(local_48[0xc] + iVar6)" identifier = (pointer_expression "*(char **)(local_48[0xc] + iVar6)" * (cast_expression "(char **)(local_48[0xc] + iVar6)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_48[0xc] + iVar6)" ( (binary_expression "local_48[0xc] + iVar6" (subscript_expression "local_48[0xc]" identifier [ number_literal ]) + identifier) ))))) ;) (expression_statement "cVar22 = *pcVar8;" (assignment_expression "cVar22 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (if_statement "if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }" if (parenthesized_expression "((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0))" ( (binary_expression "(cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)" (parenthesized_expression "(cVar22 != '?')" ( (binary_expression "cVar22 != '?'" identifier != (char_literal "'?'" ' character ')) )) && (parenthesized_expression "(pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)" ( (comma_expression "pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0" (assignment_expression "pcVar9 = strchr(pcVar8,0x40)" identifier = (call_expression "strchr(pcVar8,0x40)" identifier (argument_list "(pcVar8,0x40)" ( identifier , number_literal )))) , (binary_expression "pcVar9 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }" { (expression_statement "pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));" (assignment_expression "pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'))" identifier = (cast_expression "(char *)xstrdup(pcVar8 + (cVar22 == '@'))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pcVar8 + (cVar22 == '@'))" identifier (argument_list "(pcVar8 + (cVar22 == '@'))" ( (binary_expression "pcVar8 + (cVar22 == '@')" identifier + (parenthesized_expression "(cVar22 == '@')" ( (binary_expression "cVar22 == '@'" identifier == (char_literal "'@'" ' character ')) ))) ))))) ;) (expression_statement "pcVar9 = strrchr(pcVar8,0x40);" (assignment_expression "pcVar9 = strrchr(pcVar8,0x40)" identifier = (call_expression "strrchr(pcVar8,0x40)" identifier (argument_list "(pcVar8,0x40)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }" if (parenthesized_expression "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }" { (expression_statement "uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);" (assignment_expression "uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6)" identifier = (pointer_expression "*(undefined4 *)(DAT_001d1218[0xc] + iVar6)" * (cast_expression "(undefined4 *)(DAT_001d1218[0xc] + iVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1218[0xc] + iVar6)" ( (binary_expression "DAT_001d1218[0xc] + iVar6" (subscript_expression "DAT_001d1218[0xc]" identifier [ number_literal ]) + identifier) ))))) ;) (expression_statement "uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);" (assignment_expression "uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5)" identifier (argument_list "(0,"%X%P: cannot export %s: invalid export name\n",5)" ( number_literal , (string_literal ""%X%P: cannot export %s: invalid export name\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar16,uVar14);" (call_expression "FUN_00034d20(uVar16,uVar14)" identifier (argument_list "(uVar16,uVar14)" ( identifier , identifier ))) ;) }) (else_clause "else {\n            *pcVar9 = '\0';\n          }" else (compound_statement "{\n            *pcVar9 = '\0';\n          }" { (expression_statement "*pcVar9 = '\0';" (assignment_expression "*pcVar9 = '\0'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" identifier = identifier) ;) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" identifier = true) ;) (expression_statement "*(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;" (assignment_expression "*(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8" (pointer_expression "*(char **)(DAT_001d1218[0xc] + iVar6)" * (cast_expression "(char **)(DAT_001d1218[0xc] + iVar6)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_001d1218[0xc] + iVar6)" ( (binary_expression "DAT_001d1218[0xc] + iVar6" (subscript_expression "DAT_001d1218[0xc]" identifier [ number_literal ]) + identifier) )))) = identifier) ;) })) (expression_statement "sVar7 = local_48[0xb];" (assignment_expression "sVar7 = local_48[0xb]" identifier = (subscript_expression "local_48[0xb]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 < (int)sVar7)" ( (binary_expression "iVar3 < (int)sVar7" identifier < (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (if_statement "if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }" if (parenthesized_expression "(bVar26)" ( identifier )) (compound_statement "{\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }" { (expression_statement "qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);" (call_expression "qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720)" identifier (argument_list "((void *)local_48[0xc],sVar7,0x1c,FUN_00061720)" ( (cast_expression "(void *)local_48[0xc]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_48[0xc]" identifier [ number_literal ])) , identifier , number_literal , identifier ))) ;) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" identifier = identifier) ;) (expression_statement "sVar7 = DAT_001d1218[0xb];" (assignment_expression "sVar7 = DAT_001d1218[0xb]" identifier = (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ])) ;) })) (if_statement "if (DAT_001d1208 != 0) goto LAB_0006709d;" if (parenthesized_expression "(DAT_001d1208 != 0)" ( (binary_expression "DAT_001d1208 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0006709d;" goto statement_identifier ;)) (labeled_statement "LAB_00067212:\n      piVar13 = local_48;" statement_identifier : (expression_statement "piVar13 = local_48;" (assignment_expression "piVar13 = local_48" identifier = identifier) ;)) (expression_statement "puVar24 = (undefined4 *)local_48[0xc];" (assignment_expression "puVar24 = (undefined4 *)local_48[0xc]" identifier = (cast_expression "(undefined4 *)local_48[0xc]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_48[0xc]" identifier [ number_literal ]))) ;) (if_statement "if ((int)sVar7 < 1) goto LAB_00067c38;" if (parenthesized_expression "((int)sVar7 < 1)" ( (binary_expression "(int)sVar7 < 1" (cast_expression "(int)sVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_00067c38;" goto statement_identifier ;)) (expression_statement "local_48 = (int *)0x0;" (assignment_expression "local_48 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "puVar11 = puVar24;" (assignment_expression "puVar11 = puVar24" identifier = identifier) ;) (do_statement "do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);" do (compound_statement "{\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      }" { (if_statement "if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }" if (parenthesized_expression "(local_48 == (int *)0x0)" ( (binary_expression "local_48 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }" { (labeled_statement "LAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }" statement_identifier : (if_statement "if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }" if (parenthesized_expression "((int *)iVar3 != local_48)" ( (binary_expression "(int *)iVar3 != local_48" (cast_expression "(int *)iVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }" { (expression_statement "puVar10 = puVar24 + iVar3 * 7;" (assignment_expression "puVar10 = puVar24 + iVar3 * 7" identifier = (binary_expression "puVar24 + iVar3 * 7" identifier + (binary_expression "iVar3 * 7" identifier * number_literal))) ;) (expression_statement "*puVar10 = *puVar11;" (assignment_expression "*puVar10 = *puVar11" (pointer_expression "*puVar10" * identifier) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "puVar10[1] = puVar11[1];" (assignment_expression "puVar10[1] = puVar11[1]" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = (subscript_expression "puVar11[1]" identifier [ number_literal ])) ;) (expression_statement "puVar10[2] = puVar11[2];" (assignment_expression "puVar10[2] = puVar11[2]" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = (subscript_expression "puVar11[2]" identifier [ number_literal ])) ;) (expression_statement "puVar10[3] = puVar11[3];" (assignment_expression "puVar10[3] = puVar11[3]" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = (subscript_expression "puVar11[3]" identifier [ number_literal ])) ;) (expression_statement "puVar10[4] = puVar11[4];" (assignment_expression "puVar10[4] = puVar11[4]" (subscript_expression "puVar10[4]" identifier [ number_literal ]) = (subscript_expression "puVar11[4]" identifier [ number_literal ])) ;) (expression_statement "puVar10[5] = puVar11[5];" (assignment_expression "puVar10[5] = puVar11[5]" (subscript_expression "puVar10[5]" identifier [ number_literal ]) = (subscript_expression "puVar11[5]" identifier [ number_literal ])) ;) (expression_statement "puVar10[6] = puVar11[6];" (assignment_expression "puVar10[6] = puVar11[6]" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (subscript_expression "puVar11[6]" identifier [ number_literal ])) ;) }))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }" else (compound_statement "{\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }" { (expression_statement "local_40 = (char *)*puVar11;" (assignment_expression "local_40 = (char *)*puVar11" identifier = (cast_expression "(char *)*puVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar11" * identifier))) ;) (expression_statement "iVar6 = strcmp(local_40,(char *)puVar11[-7]);" (assignment_expression "iVar6 = strcmp(local_40,(char *)puVar11[-7])" identifier = (call_expression "strcmp(local_40,(char *)puVar11[-7])" identifier (argument_list "(local_40,(char *)puVar11[-7])" ( identifier , (cast_expression "(char *)puVar11[-7]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[-7]" identifier [ number_literal ])) )))) ;) (if_statement "if (iVar6 != 0) goto LAB_00067327;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00067327;" goto statement_identifier ;)) (expression_statement "puVar10 = puVar24 + iVar3 * 7 + -7;" (assignment_expression "puVar10 = puVar24 + iVar3 * 7 + -7" identifier = (binary_expression "puVar24 + iVar3 * 7 + -7" (binary_expression "puVar24 + iVar3 * 7" identifier + (binary_expression "iVar3 * 7" identifier * number_literal)) + number_literal)) ;) (expression_statement "iVar6 = puVar10[3];" (assignment_expression "iVar6 = puVar10[3]" identifier = (subscript_expression "puVar10[3]" identifier [ number_literal ])) ;) (if_statement "if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }" if (parenthesized_expression "(((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18))" ( (binary_expression "((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)" (parenthesized_expression "((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1))" ( (binary_expression "(iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)" (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) || (parenthesized_expression "(iVar18 = puVar11[3], iVar18 == -1)" ( (comma_expression "iVar18 = puVar11[3], iVar18 == -1" (assignment_expression "iVar18 = puVar11[3]" identifier = (subscript_expression "puVar11[3]" identifier [ number_literal ])) , (binary_expression "iVar18 == -1" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar6 == iVar18)" ( (binary_expression "iVar6 == iVar18" identifier == identifier) ))) )) (compound_statement "{\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }" { (if_statement "if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }" if (parenthesized_expression "(DAT_001d1204 != 0)" ( (binary_expression "DAT_001d1204 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }" { (expression_statement "uVar14 = *puVar10;" (assignment_expression "uVar14 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);" (assignment_expression "uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5)" identifier = (call_expression "dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5)" identifier (argument_list "(0,"%P: warning, duplicate EXPORT: %s\n",5)" ( number_literal , (string_literal ""%P: warning, duplicate EXPORT: %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar16,uVar14);" (call_expression "FUN_00034d20(uVar16,uVar14)" identifier (argument_list "(uVar16,uVar14)" ( identifier , identifier ))) ;) (expression_statement "local_40 = (char *)*puVar11;" (assignment_expression "local_40 = (char *)*puVar11" identifier = (cast_expression "(char *)*puVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar11" * identifier))) ;) })) (labeled_statement "LAB_00067748:\n            iVar18 = puVar11[3];" statement_identifier : (expression_statement "iVar18 = puVar11[3];" (assignment_expression "iVar18 = puVar11[3]" identifier = (subscript_expression "puVar11[3]" identifier [ number_literal ])) ;)) (if_statement "if (iVar18 != -1) goto LAB_000672a7;" if (parenthesized_expression "(iVar18 != -1)" ( (binary_expression "iVar18 != -1" identifier != number_literal) )) (goto_statement "goto LAB_000672a7;" goto statement_identifier ;)) }) (else_clause "else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }" else (compound_statement "{\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }" { (if_statement "if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }" if (parenthesized_expression "(DAT_001d1204 != 0)" ( (binary_expression "DAT_001d1204 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }" { (expression_statement "uVar14 = *puVar10;" (assignment_expression "uVar14 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;" (assignment_expression "uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)" identifier (argument_list "(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)" ( number_literal , (string_literal ""%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar16,uVar14,iVar6,iVar18);" (call_expression "FUN_00034d20(uVar16,uVar14,iVar6,iVar18)" identifier (argument_list "(uVar16,uVar14,iVar6,iVar18)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_40 = (char *)*puVar11;" (assignment_expression "local_40 = (char *)*puVar11" identifier = (cast_expression "(char *)*puVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar11" * identifier))) ;) (goto_statement "goto LAB_00067748;" goto statement_identifier ;) })) (labeled_statement "LAB_000672a7:\n            puVar10[3] = iVar18;" statement_identifier : (expression_statement "puVar10[3] = iVar18;" (assignment_expression "puVar10[3] = iVar18" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = identifier) ;)) }))) (expression_statement "*(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);" (assignment_expression "*(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5)" (pointer_expression "*(byte *)(puVar10 + 5)" * (cast_expression "(byte *)(puVar10 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 5)" ( (binary_expression "puVar10 + 5" identifier + number_literal) )))) = (binary_expression "*(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5)" (pointer_expression "*(byte *)(puVar10 + 5)" * (cast_expression "(byte *)(puVar10 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 5)" ( (binary_expression "puVar10 + 5" identifier + number_literal) )))) | (pointer_expression "*(byte *)(puVar11 + 5)" * (cast_expression "(byte *)(puVar11 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 5)" ( (binary_expression "puVar11 + 5" identifier + number_literal) )))))) ;) (expression_statement "*(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);" (assignment_expression "*(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15)" (pointer_expression "*(byte *)((int)puVar10 + 0x15)" * (cast_expression "(byte *)((int)puVar10 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 0x15)" ( (binary_expression "(int)puVar10 + 0x15" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15)" (pointer_expression "*(byte *)((int)puVar10 + 0x15)" * (cast_expression "(byte *)((int)puVar10 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 0x15)" ( (binary_expression "(int)puVar10 + 0x15" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | (pointer_expression "*(byte *)((int)puVar11 + 0x15)" * (cast_expression "(byte *)((int)puVar11 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x15)" ( (binary_expression "(int)puVar11 + 0x15" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "*(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);" (assignment_expression "*(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16)" (pointer_expression "*(byte *)((int)puVar10 + 0x16)" * (cast_expression "(byte *)((int)puVar10 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 0x16)" ( (binary_expression "(int)puVar10 + 0x16" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16)" (pointer_expression "*(byte *)((int)puVar10 + 0x16)" * (cast_expression "(byte *)((int)puVar10 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 0x16)" ( (binary_expression "(int)puVar10 + 0x16" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | (pointer_expression "*(byte *)((int)puVar11 + 0x16)" * (cast_expression "(byte *)((int)puVar11 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x16)" ( (binary_expression "(int)puVar11 + 0x16" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "*(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);" (assignment_expression "*(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17)" (pointer_expression "*(byte *)((int)puVar10 + 0x17)" * (cast_expression "(byte *)((int)puVar10 + 0x17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 0x17)" ( (binary_expression "(int)puVar10 + 0x17" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17)" (pointer_expression "*(byte *)((int)puVar10 + 0x17)" * (cast_expression "(byte *)((int)puVar10 + 0x17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + 0x17)" ( (binary_expression "(int)puVar10 + 0x17" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) | (pointer_expression "*(byte *)((int)puVar11 + 0x17)" * (cast_expression "(byte *)((int)puVar11 + 0x17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + 0x17)" ( (binary_expression "(int)puVar11 + 0x17" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (local_40 != (char *)0x0) {\n            free(local_40);\n          }" if (parenthesized_expression "(local_40 != (char *)0x0)" ( (binary_expression "local_40 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            free(local_40);\n          }" { (expression_statement "free(local_40);" (call_expression "free(local_40)" identifier (argument_list "(local_40)" ( identifier ))) ;) })) (if_statement "if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }" if (parenthesized_expression "((void *)puVar11[1] != (void *)0x0)" ( (binary_expression "(void *)puVar11[1] != (void *)0x0" (cast_expression "(void *)puVar11[1]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[1]" identifier [ number_literal ])) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            free((void *)puVar11[1]);\n          }" { (expression_statement "free((void *)puVar11[1]);" (call_expression "free((void *)puVar11[1])" identifier (argument_list "((void *)puVar11[1])" ( (cast_expression "(void *)puVar11[1]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[1]" identifier [ number_literal ])) ))) ;) })) (expression_statement "piVar13 = DAT_001d1218;" (assignment_expression "piVar13 = DAT_001d1218" identifier = identifier) ;) (if_statement "if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }" if (parenthesized_expression "((void *)puVar11[2] != (void *)0x0)" ( (binary_expression "(void *)puVar11[2] != (void *)0x0" (cast_expression "(void *)puVar11[2]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[2]" identifier [ number_literal ])) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }" { (expression_statement "free((void *)puVar11[2]);" (call_expression "free((void *)puVar11[2])" identifier (argument_list "((void *)puVar11[2])" ( (cast_expression "(void *)puVar11[2]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar11[2]" identifier [ number_literal ])) ))) ;) (expression_statement "piVar13 = DAT_001d1218;" (assignment_expression "piVar13 = DAT_001d1218" identifier = identifier) ;) })) }))) (expression_statement "local_48 = (int *)((int)local_48 + 1);" (assignment_expression "local_48 = (int *)((int)local_48 + 1)" identifier = (cast_expression "(int *)((int)local_48 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_48 + 1)" ( (binary_expression "(int)local_48 + 1" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar11 = puVar11 + 7;" (assignment_expression "puVar11 = puVar11 + 7" identifier = (binary_expression "puVar11 + 7" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)local_48 < piVar13[0xb])" ( (binary_expression "(int)local_48 < piVar13[0xb]" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "piVar13[0xb]" identifier [ number_literal ])) )) ;) (expression_statement "iVar6 = iVar3 * 8;" (assignment_expression "iVar6 = iVar3 * 8" identifier = (binary_expression "iVar3 * 8" identifier * number_literal)) ;) (expression_statement "local_48 = piVar13;" (assignment_expression "local_48 = piVar13" identifier = identifier) ;) })))) (expression_statement "local_48[0xb] = iVar3;" (assignment_expression "local_48[0xb] = iVar3" (subscript_expression "local_48[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "DAT_001d1278 = xmalloc(iVar6);" (assignment_expression "DAT_001d1278 = xmalloc(iVar6)" identifier = (call_expression "xmalloc(iVar6)" identifier (argument_list "(iVar6)" ( identifier )))) ;) (expression_statement "DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);" (assignment_expression "DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2)" identifier = (cast_expression "(void *)xmalloc(DAT_001d1218[0xb] << 2)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(DAT_001d1218[0xb] << 2)" identifier (argument_list "(DAT_001d1218[0xb] << 2)" ( (binary_expression "DAT_001d1218[0xb] << 2" (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ]) << number_literal) ))))) ;) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" identifier = identifier) ;) (expression_statement "memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);" (call_expression "memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4)" identifier (argument_list "(DAT_001d1274,0,DAT_001d1218[0xb] * 4)" ( identifier , number_literal , (binary_expression "DAT_001d1218[0xb] * 4" (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ]) * number_literal) ))) ;) (expression_statement "iVar6 = puVar24[0xb];" (assignment_expression "iVar6 = puVar24[0xb]" identifier = (subscript_expression "puVar24[0xb]" identifier [ number_literal ])) ;) (expression_statement "DAT_001d1258 = 0;" (assignment_expression "DAT_001d1258 = 0" identifier = number_literal) ;) (expression_statement "DAT_001d125c = 0x10000;" (assignment_expression "DAT_001d125c = 0x10000" identifier = number_literal) ;) (expression_statement "DAT_001d126c = 0;" (assignment_expression "DAT_001d126c = 0" identifier = number_literal) ;) (expression_statement "DAT_001d1268 = 0;" (assignment_expression "DAT_001d1268 = 0" identifier = number_literal) ;) (expression_statement "DAT_001d1264 = 0;" (assignment_expression "DAT_001d1264 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }" if (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) (compound_statement "{\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }" { (expression_statement "local_48 = (int *)0x0;" (assignment_expression "local_48 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);" do (compound_statement "{\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      }" { (expression_statement "iVar6 = (int)local_48 * 0x1c;" (assignment_expression "iVar6 = (int)local_48 * 0x1c" identifier = (binary_expression "(int)local_48 * 0x1c" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);" (assignment_expression "pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6)" identifier = (pointer_expression "*(char **)(puVar24[0xc] + 4 + iVar6)" * (cast_expression "(char **)(puVar24[0xc] + 4 + iVar6)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24[0xc] + 4 + iVar6)" ( (binary_expression "puVar24[0xc] + 4 + iVar6" (binary_expression "puVar24[0xc] + 4" (subscript_expression "puVar24[0xc]" identifier [ number_literal ]) + number_literal) + identifier) ))))) ;) (expression_statement "FUN_00028f70(pcVar8);" (call_expression "FUN_00028f70(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier ))) ;) (expression_statement "sVar7 = strlen(pcVar8);" (assignment_expression "sVar7 = strlen(pcVar8)" identifier = (call_expression "strlen(pcVar8)" identifier (argument_list "(pcVar8)" ( identifier )))) ;) (expression_statement "pcVar9 = (char *)xmalloc(sVar7 + 2);" (assignment_expression "pcVar9 = (char *)xmalloc(sVar7 + 2)" identifier = (cast_expression "(char *)xmalloc(sVar7 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar7 + 2)" identifier (argument_list "(sVar7 + 2)" ( (binary_expression "sVar7 + 2" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }" if (parenthesized_expression "((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@'))" ( (binary_expression "(*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')" (parenthesized_expression "(*(int *)(DAT_001d127c + 0x14) == 0)" ( (binary_expression "*(int *)(DAT_001d127c + 0x14) == 0" (pointer_expression "*(int *)(DAT_001d127c + 0x14)" * (cast_expression "(int *)(DAT_001d127c + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d127c + 0x14)" ( (binary_expression "DAT_001d127c + 0x14" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*pcVar8 == '@')" ( (binary_expression "*pcVar8 == '@'" (pointer_expression "*pcVar8" * identifier) == (char_literal "'@'" ' character ')) ))) )) (compound_statement "{\n          strcpy(pcVar9,pcVar8);\n        }" { (expression_statement "strcpy(pcVar9,pcVar8);" (call_expression "strcpy(pcVar9,pcVar8)" identifier (argument_list "(pcVar9,pcVar8)" ( identifier , identifier ))) ;) }) (else_clause "else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }" else (compound_statement "{\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }" { (expression_statement "*pcVar9 = '_';" (assignment_expression "*pcVar9 = '_'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'_'" ' character ')) ;) (expression_statement "strcpy(pcVar9 + 1,pcVar8);" (call_expression "strcpy(pcVar9 + 1,pcVar8)" identifier (argument_list "(pcVar9 + 1,pcVar8)" ( (binary_expression "pcVar9 + 1" identifier + number_literal) , identifier ))) ;) (expression_statement "uVar14 = xstrdup(pcVar9);" (assignment_expression "uVar14 = xstrdup(pcVar9)" identifier = (call_expression "xstrdup(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier )))) ;) (expression_statement "FUN_00028f70(uVar14);" (call_expression "FUN_00028f70(uVar14)" identifier (argument_list "(uVar14)" ( identifier ))) ;) }))) (expression_statement "iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);" (assignment_expression "iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1)" ( (pointer_expression "*(undefined4 *)(param_2 + 0x20)" * (cast_expression "(undefined4 *)(param_2 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) , identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }" { (expression_statement "pcVar15 = strchr(pcVar8,0x2e);" (assignment_expression "pcVar15 = strchr(pcVar8,0x2e)" identifier = (call_expression "strchr(pcVar8,0x2e)" identifier (argument_list "(pcVar8,0x2e)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\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 "{\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }" { (labeled_statement "LAB_00067968:\n            puVar24 = DAT_001d1218;" statement_identifier : (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" identifier = identifier) ;)) (expression_statement "DAT_001d126c = DAT_001d126c + 1;" (assignment_expression "DAT_001d126c = DAT_001d126c + 1" identifier = (binary_expression "DAT_001d126c + 1" identifier + number_literal)) ;) (expression_statement "iVar6 = iVar6 + DAT_001d1218[0xc];" (assignment_expression "iVar6 = iVar6 + DAT_001d1218[0xc]" identifier = (binary_expression "iVar6 + DAT_001d1218[0xc]" identifier + (subscript_expression "DAT_001d1218[0xc]" identifier [ number_literal ]))) ;) (if_statement "if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }" if (parenthesized_expression "(*(char *)(iVar6 + 0x16) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0x16) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x16)" * (cast_expression "(char *)(iVar6 + 0x16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x16)" ( (binary_expression "iVar6 + 0x16" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }" { (expression_statement "DAT_001d1268 = DAT_001d1268 + 1;" (assignment_expression "DAT_001d1268 = DAT_001d1268 + 1" identifier = (binary_expression "DAT_001d1268 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)(iVar6 + 0x18) = 1;" (assignment_expression "*(undefined1 *)(iVar6 + 0x18) = 1" (pointer_expression "*(undefined1 *)(iVar6 + 0x18)" * (cast_expression "(undefined1 *)(iVar6 + 0x18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00067863;" goto statement_identifier ;) })) (expression_statement "pcVar15 = "%X%P: cannot export %s: symbol not found\n";" (assignment_expression "pcVar15 = "%X%P: cannot export %s: symbol not found\n"" identifier = (string_literal ""%X%P: cannot export %s: symbol not found\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);" statement_identifier : (expression_statement "uVar14 = dcgettext(0,pcVar15,5);" (assignment_expression "uVar14 = dcgettext(0,pcVar15,5)" identifier = (call_expression "dcgettext(0,pcVar15,5)" identifier (argument_list "(0,pcVar15,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_00034d20(uVar14,pcVar8);" (call_expression "FUN_00034d20(uVar14,pcVar8)" identifier (argument_list "(uVar14,pcVar8)" ( identifier , identifier ))) ;) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" identifier = identifier) ;) }) (else_clause "else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }" else (compound_statement "{\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }" { (expression_statement "cVar22 = *(char *)(iVar3 + 0xc);" (assignment_expression "cVar22 = *(char *)(iVar3 + 0xc)" identifier = (pointer_expression "*(char *)(iVar3 + 0xc)" * (cast_expression "(char *)(iVar3 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }" if (parenthesized_expression "((cVar22 - 3U & 0xfd) == 0)" ( (binary_expression "(cVar22 - 3U & 0xfd) == 0" (parenthesized_expression "(cVar22 - 3U & 0xfd)" ( (binary_expression "cVar22 - 3U & 0xfd" (binary_expression "cVar22 - 3U" identifier - number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }" { (expression_statement "DAT_001d126c = DAT_001d126c + 1;" (assignment_expression "DAT_001d126c = DAT_001d126c + 1" identifier = (binary_expression "DAT_001d126c + 1" identifier + number_literal)) ;) (expression_statement "iVar6 = iVar6 + DAT_001d1218[0xc];" (assignment_expression "iVar6 = iVar6 + DAT_001d1218[0xc]" identifier = (binary_expression "iVar6 + DAT_001d1218[0xc]" identifier + (subscript_expression "DAT_001d1218[0xc]" identifier [ number_literal ]))) ;) (if_statement "if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }" if (parenthesized_expression "(*(char *)(iVar6 + 0x16) == '\0')" ( (binary_expression "*(char *)(iVar6 + 0x16) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x16)" * (cast_expression "(char *)(iVar6 + 0x16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x16)" ( (binary_expression "iVar6 + 0x16" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }" { (expression_statement "DAT_001d1268 = DAT_001d1268 + 1;" (assignment_expression "DAT_001d1268 = DAT_001d1268 + 1" identifier = (binary_expression "DAT_001d1268 + 1" identifier + number_literal)) ;) })) (expression_statement "piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);" (assignment_expression "piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4)" identifier = (cast_expression "(int *)((int)DAT_001d1274 + (int)local_48 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)DAT_001d1274 + (int)local_48 * 4)" ( (binary_expression "(int)DAT_001d1274 + (int)local_48 * 4" (cast_expression "(int)DAT_001d1274" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_48 * 4" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (if_statement "if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }" if (parenthesized_expression "(cVar22 == '\x03')" ( (binary_expression "cVar22 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }" { (expression_statement "*piVar13 = *(int *)(iVar3 + 0x14);" (assignment_expression "*piVar13 = *(int *)(iVar3 + 0x14)" (pointer_expression "*piVar13" * identifier) = (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }" else (compound_statement "{\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }" { (expression_statement "*piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);" (assignment_expression "*piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4)" (pointer_expression "*piVar13" * identifier) = (pointer_expression "*(int *)(*(int *)(iVar3 + 0x14) + 4)" * (cast_expression "(int *)(*(int *)(iVar3 + 0x14) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar3 + 0x14) + 4)" ( (binary_expression "*(int *)(iVar3 + 0x14) + 4" (pointer_expression "*(int *)(iVar3 + 0x14)" * (cast_expression "(int *)(iVar3 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (labeled_statement "LAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);" statement_identifier : (expression_statement "iVar6 = *(int *)(iVar6 + 0xc);" (assignment_expression "iVar6 = *(int *)(iVar6 + 0xc)" identifier = (pointer_expression "*(int *)(iVar6 + 0xc)" * (cast_expression "(int *)(iVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) ))))) ;)) (if_statement "if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }" if (parenthesized_expression "(iVar6 != -1)" ( (binary_expression "iVar6 != -1" identifier != number_literal) )) (compound_statement "{\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }" { (if_statement "if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }" if (parenthesized_expression "(DAT_001d1258 < iVar6)" ( (binary_expression "DAT_001d1258 < iVar6" identifier < identifier) )) (compound_statement "{\n                DAT_001d1258 = iVar6;\n              }" { (expression_statement "DAT_001d1258 = iVar6;" (assignment_expression "DAT_001d1258 = iVar6" identifier = identifier) ;) })) (if_statement "if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }" if (parenthesized_expression "(iVar6 < DAT_001d125c)" ( (binary_expression "iVar6 < DAT_001d125c" identifier < identifier) )) (compound_statement "{\n                DAT_001d125c = iVar6;\n              }" { (expression_statement "DAT_001d125c = iVar6;" (assignment_expression "DAT_001d125c = iVar6" identifier = identifier) ;) })) (expression_statement "DAT_001d1264 = DAT_001d1264 + 1;" (assignment_expression "DAT_001d1264 = DAT_001d1264 + 1" identifier = (binary_expression "DAT_001d1264 + 1" identifier + number_literal)) ;) })) }) (else_clause "else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }" else (compound_statement "{\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }" { (expression_statement "pcVar15 = strchr(pcVar8,0x2e);" (assignment_expression "pcVar15 = strchr(pcVar8,0x2e)" identifier = (call_expression "strchr(pcVar8,0x2e)" identifier (argument_list "(pcVar8,0x2e)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar15 != (char *)0x0) goto LAB_00067968;" 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_00067968;" goto statement_identifier ;)) (if_statement "if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }" if (parenthesized_expression "(cVar22 == '\x01')" ( (binary_expression "cVar22 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }" { (expression_statement "pcVar15 = "%X%P: cannot export %s: symbol not defined\n";" (assignment_expression "pcVar15 = "%X%P: cannot export %s: symbol not defined\n"" identifier = (string_literal ""%X%P: cannot export %s: symbol not defined\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_000679ab;" goto statement_identifier ;) })) (expression_statement "uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);" (assignment_expression "uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5)" identifier (argument_list "(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5)" ( number_literal , (string_literal ""%X%P: cannot export %s: symbol wrong type (%d vs %d)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar14,pcVar8,cVar22,3);" (call_expression "FUN_00034d20(uVar14,pcVar8,cVar22,3)" identifier (argument_list "(uVar14,pcVar8,cVar22,3)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" identifier = identifier) ;) }))) }))) (expression_statement "free(pcVar9);" (call_expression "free(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "local_48 = (int *)((int)local_48 + 1);" (assignment_expression "local_48 = (int *)((int)local_48 + 1)" identifier = (cast_expression "(int *)((int)local_48 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_48 + 1)" ( (binary_expression "(int)local_48 + 1" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar6 = puVar24[0xb];" (assignment_expression "iVar6 = puVar24[0xb]" identifier = (subscript_expression "puVar24[0xb]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "((int)local_48 < iVar6)" ( (binary_expression "(int)local_48 < iVar6" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })) (labeled_statement "joined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }" statement_identifier : (if_statement "if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }" { (labeled_statement "LAB_0006736e:\n      bVar2 = *param_2;" statement_identifier : (expression_statement "bVar2 = *param_2;" (assignment_expression "bVar2 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;)) (goto_statement "goto LAB_00067375;" goto statement_identifier ;) }))) }))) (expression_statement "DAT_001d1260 = (char *)*puVar24;" (assignment_expression "DAT_001d1260 = (char *)*puVar24" identifier = (cast_expression "(char *)*puVar24" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar24" * identifier))) ;) (if_statement "if (DAT_001d1260 == (char *)0x0) {\n    DAT_001d1260 = (char *)*param_1;\n    cVar22 = *DAT_001d1260;\n    if (cVar22 != '\0') {\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }\n  }" if (parenthesized_expression "(DAT_001d1260 == (char *)0x0)" ( (binary_expression "DAT_001d1260 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_001d1260 = (char *)*param_1;\n    cVar22 = *DAT_001d1260;\n    if (cVar22 != '\0') {\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }\n  }" { (expression_statement "DAT_001d1260 = (char *)*param_1;" (assignment_expression "DAT_001d1260 = (char *)*param_1" identifier = (cast_expression "(char *)*param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "cVar22 = *DAT_001d1260;" (assignment_expression "cVar22 = *DAT_001d1260" identifier = (pointer_expression "*DAT_001d1260" * identifier)) ;) (if_statement "if (cVar22 != '\0') {\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }" if (parenthesized_expression "(cVar22 != '\0')" ( (binary_expression "cVar22 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }" { (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "pcVar9 = DAT_001d1260;" (assignment_expression "pcVar9 = DAT_001d1260" identifier = identifier) ;) (expression_statement "pcVar8 = DAT_001d1260;" (assignment_expression "pcVar8 = DAT_001d1260" identifier = identifier) ;) (do_statement "do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');" do (compound_statement "{\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      }" { (expression_statement "bVar25 = cVar22 == '\\';" (assignment_expression "bVar25 = cVar22 == '\\'" identifier = (binary_expression "cVar22 == '\\'" identifier == (char_literal "'\\'" ' escape_sequence '))) ;) (expression_statement "bVar27 = cVar22 == '/';" (assignment_expression "bVar27 = cVar22 == '/'" identifier = (binary_expression "cVar22 == '/'" identifier == (char_literal "'/'" ' character '))) ;) (expression_statement "bVar28 = cVar22 == ':';" (assignment_expression "bVar28 = cVar22 == ':'" identifier = (binary_expression "cVar22 == ':'" identifier == (char_literal "':'" ' character '))) ;) (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) (expression_statement "cVar22 = *pcVar9;" (assignment_expression "cVar22 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (if_statement "if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }" if (parenthesized_expression "((bVar25 || bVar27) || bVar28)" ( (binary_expression "(bVar25 || bVar27) || bVar28" (parenthesized_expression "(bVar25 || bVar27)" ( (binary_expression "bVar25 || bVar27" identifier || identifier) )) || identifier) )) (compound_statement "{\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }" { (expression_statement "bVar26 = (bVar25 || bVar27) || bVar28;" (assignment_expression "bVar26 = (bVar25 || bVar27) || bVar28" identifier = (binary_expression "(bVar25 || bVar27) || bVar28" (parenthesized_expression "(bVar25 || bVar27)" ( (binary_expression "bVar25 || bVar27" identifier || identifier) )) || identifier)) ;) (expression_statement "pcVar8 = pcVar9;" (assignment_expression "pcVar8 = pcVar9" identifier = identifier) ;) })) }) while (parenthesized_expression "(cVar22 != '\0')" ( (binary_expression "cVar22 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }" if (parenthesized_expression "(bVar26)" ( identifier )) (compound_statement "{\n        DAT_001d1260 = pcVar8;\n      }" { (expression_statement "DAT_001d1260 = pcVar8;" (assignment_expression "DAT_001d1260 = pcVar8" identifier = identifier) ;) })) })) })) (if_statement "if ((DAT_001d1264 == 0) || (DAT_001d1258 <= DAT_001d126c)) {\n    DAT_001d125c = 1;\n    DAT_001d1258 = DAT_001d126c;\n  }\n  else {\n    iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;\n    if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }\n  }" if (parenthesized_expression "((DAT_001d1264 == 0) || (DAT_001d1258 <= DAT_001d126c))" ( (binary_expression "(DAT_001d1264 == 0) || (DAT_001d1258 <= DAT_001d126c)" (parenthesized_expression "(DAT_001d1264 == 0)" ( (binary_expression "DAT_001d1264 == 0" identifier == number_literal) )) || (parenthesized_expression "(DAT_001d1258 <= DAT_001d126c)" ( (binary_expression "DAT_001d1258 <= DAT_001d126c" identifier <= identifier) ))) )) (compound_statement "{\n    DAT_001d125c = 1;\n    DAT_001d1258 = DAT_001d126c;\n  }" { (expression_statement "DAT_001d125c = 1;" (assignment_expression "DAT_001d125c = 1" identifier = number_literal) ;) (expression_statement "DAT_001d1258 = DAT_001d126c;" (assignment_expression "DAT_001d1258 = DAT_001d126c" identifier = identifier) ;) }) (else_clause "else {\n    iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;\n    if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }\n  }" else (compound_statement "{\n    iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;\n    if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }\n  }" { (expression_statement "iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;" (assignment_expression "iVar6 = (DAT_001d1258 - DAT_001d126c) + 1" identifier = (binary_expression "(DAT_001d1258 - DAT_001d126c) + 1" (parenthesized_expression "(DAT_001d1258 - DAT_001d126c)" ( (binary_expression "DAT_001d1258 - DAT_001d126c" identifier - identifier) )) + number_literal)) ;) (if_statement "if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }" if (parenthesized_expression "(iVar6 < DAT_001d125c)" ( (binary_expression "iVar6 < DAT_001d125c" identifier < identifier) )) (compound_statement "{\n      DAT_001d125c = iVar6;\n    }" { (expression_statement "DAT_001d125c = iVar6;" (assignment_expression "DAT_001d125c = iVar6" identifier = identifier) ;) })) }))) (expression_statement "DAT_001d1270 = (DAT_001d1258 - DAT_001d125c) + 1;" (assignment_expression "DAT_001d1270 = (DAT_001d1258 - DAT_001d125c) + 1" identifier = (binary_expression "(DAT_001d1258 - DAT_001d125c) + 1" (parenthesized_expression "(DAT_001d1258 - DAT_001d125c)" ( (binary_expression "DAT_001d1258 - DAT_001d125c" identifier - identifier) )) + number_literal)) ;) (expression_statement "puVar11 = (undefined4 *)xmalloc(DAT_001d1270 * 4);" (assignment_expression "puVar11 = (undefined4 *)xmalloc(DAT_001d1270 * 4)" identifier = (cast_expression "(undefined4 *)xmalloc(DAT_001d1270 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(DAT_001d1270 * 4)" identifier (argument_list "(DAT_001d1270 * 4)" ( (binary_expression "DAT_001d1270 * 4" identifier * number_literal) ))))) ;) (expression_statement "puVar24 = puVar11 + DAT_001d1270;" (assignment_expression "puVar24 = puVar11 + DAT_001d1270" identifier = (binary_expression "puVar11 + DAT_001d1270" identifier + identifier)) ;) (expression_statement "DAT_001d1254 = puVar11;" (assignment_expression "DAT_001d1254 = puVar11" identifier = identifier) ;) (if_statement "if (0 < DAT_001d1270) {\n    do {\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    } while (puVar24 != puVar11);\n  }" if (parenthesized_expression "(0 < DAT_001d1270)" ( (binary_expression "0 < DAT_001d1270" number_literal < identifier) )) (compound_statement "{\n    do {\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    } while (puVar24 != puVar11);\n  }" { (do_statement "do {\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    } while (puVar24 != puVar11);" do (compound_statement "{\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    }" { (expression_statement "*puVar11 = 0xffffffff;" (assignment_expression "*puVar11 = 0xffffffff" (pointer_expression "*puVar11" * identifier) = number_literal) ;) (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar24 != puVar11)" ( (binary_expression "puVar24 != puVar11" identifier != identifier) )) ;) })) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" identifier = identifier) ;) (expression_statement "local_3c = DAT_001d125c;" (assignment_expression "local_3c = DAT_001d125c" identifier = identifier) ;) (if_statement "if ((int)DAT_001d1218[0xb] < 1) {\n    local_44 = 0;\n    iVar6 = DAT_001d125c;\n    goto LAB_00067580;\n  }" if (parenthesized_expression "((int)DAT_001d1218[0xb] < 1)" ( (binary_expression "(int)DAT_001d1218[0xb] < 1" (cast_expression "(int)DAT_001d1218[0xb]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "DAT_001d1218[0xb]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n    local_44 = 0;\n    iVar6 = DAT_001d125c;\n    goto LAB_00067580;\n  }" { (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = DAT_001d125c;" (assignment_expression "iVar6 = DAT_001d125c" identifier = identifier) ;) (goto_statement "goto LAB_00067580;" goto statement_identifier ;) })) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_40 = (char *)0x0;" (assignment_expression "local_40 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = DAT_001d1218[0xc];" (assignment_expression "iVar3 = DAT_001d1218[0xc]" identifier = (subscript_expression "DAT_001d1218[0xc]" identifier [ number_literal ])) ;) (do_statement "do {\n    iVar6 = (int)local_40 * 0x1c;\n    puVar24 = (undefined4 *)(iVar3 + iVar6);\n    if ((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))\n    {\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }\n    else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }\n    if (*(char *)(puVar24 + 6) != '\0') {\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }\n    pvVar4 = DAT_001d1274;\n    puVar24 = DAT_001d1254;\n    local_40 = (char *)((int)local_40 + 1);\n  } while ((int)local_40 < local_48[0xb]);" do (compound_statement "{\n    iVar6 = (int)local_40 * 0x1c;\n    puVar24 = (undefined4 *)(iVar3 + iVar6);\n    if ((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))\n    {\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }\n    else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }\n    if (*(char *)(puVar24 + 6) != '\0') {\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }\n    pvVar4 = DAT_001d1274;\n    puVar24 = DAT_001d1254;\n    local_40 = (char *)((int)local_40 + 1);\n  }" { (expression_statement "iVar6 = (int)local_40 * 0x1c;" (assignment_expression "iVar6 = (int)local_40 * 0x1c" identifier = (binary_expression "(int)local_40 * 0x1c" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (expression_statement "puVar24 = (undefined4 *)(iVar3 + iVar6);" (assignment_expression "puVar24 = (undefined4 *)(iVar3 + iVar6)" identifier = (cast_expression "(undefined4 *)(iVar3 + iVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + iVar6)" ( (binary_expression "iVar3 + iVar6" identifier + identifier) )))) ;) (if_statement "if ((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))\n    {\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }\n    else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }" if (parenthesized_expression "((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))" ( (binary_expression "(*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0')" (parenthesized_expression "(*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0)" ( (binary_expression "*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0" (pointer_expression "*(int *)((int)DAT_001d1274 + (int)local_40 * 4)" * (cast_expression "(int *)((int)DAT_001d1274 + (int)local_40 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)DAT_001d1274 + (int)local_40 * 4)" ( (binary_expression "(int)DAT_001d1274 + (int)local_40 * 4" (cast_expression "(int)DAT_001d1274" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_40 * 4" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) == number_literal) )) && (parenthesized_expression "(*(char *)(puVar24 + 6) == '\0')" ( (binary_expression "*(char *)(puVar24 + 6) == '\0'" (pointer_expression "*(char *)(puVar24 + 6)" * (cast_expression "(char *)(puVar24 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 6)" ( (binary_expression "puVar24 + 6" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }" { (expression_statement "iVar3 = local_48[0xc];" (assignment_expression "iVar3 = local_48[0xc]" identifier = (subscript_expression "local_48[0xc]" identifier [ number_literal ])) ;) (expression_statement "puVar24 = (undefined4 *)(iVar6 + iVar3);" (assignment_expression "puVar24 = (undefined4 *)(iVar6 + iVar3)" identifier = (cast_expression "(undefined4 *)(iVar6 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar3)" ( (binary_expression "iVar6 + iVar3" identifier + identifier) )))) ;) }) (else_clause "else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }" else (compound_statement "{\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }" { (expression_statement "iVar18 = puVar24[3];" (assignment_expression "iVar18 = puVar24[3]" identifier = (subscript_expression "puVar24[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }" if (parenthesized_expression "(iVar18 != -1)" ( (binary_expression "iVar18 != -1" identifier != number_literal) )) (compound_statement "{\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }" { (expression_statement "iVar21 = iVar18 - local_3c;" (assignment_expression "iVar21 = iVar18 - local_3c" identifier = (binary_expression "iVar18 - local_3c" identifier - identifier)) ;) (expression_statement "piVar13 = DAT_001d1254 + iVar21;" (assignment_expression "piVar13 = DAT_001d1254 + iVar21" identifier = (binary_expression "DAT_001d1254 + iVar21" identifier + identifier)) ;) (if_statement "if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }" if (parenthesized_expression "(*piVar13 != -1)" ( (binary_expression "*piVar13 != -1" (pointer_expression "*piVar13" * identifier) != number_literal) )) (compound_statement "{\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }" { (expression_statement "uVar14 = *puVar24;" (assignment_expression "uVar14 = *puVar24" identifier = (pointer_expression "*puVar24" * identifier)) ;) (expression_statement "uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);" (assignment_expression "uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + *piVar13 * 0x1c)" * (cast_expression "(undefined4 *)(iVar3 + *piVar13 * 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + *piVar13 * 0x1c)" ( (binary_expression "iVar3 + *piVar13 * 0x1c" identifier + (binary_expression "*piVar13 * 0x1c" (pointer_expression "*piVar13" * identifier) * number_literal)) ))))) ;) (expression_statement "uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5)" identifier (argument_list "(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5)" ( number_literal , (string_literal ""%X%P: error: ordinal used twice: %d (%s vs %s)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar12,iVar18,uVar14,uVar16);" (call_expression "FUN_00034d20(uVar12,iVar18,uVar14,uVar16)" identifier (argument_list "(uVar12,iVar18,uVar14,uVar16)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_3c = DAT_001d125c;" (assignment_expression "local_3c = DAT_001d125c" identifier = identifier) ;) (expression_statement "piVar13 = DAT_001d1254 + iVar21;" (assignment_expression "piVar13 = DAT_001d1254 + iVar21" identifier = (binary_expression "DAT_001d1254 + iVar21" identifier + identifier)) ;) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" identifier = identifier) ;) })) (expression_statement "*piVar13 = (int)local_40;" (assignment_expression "*piVar13 = (int)local_40" (pointer_expression "*piVar13" * identifier) = (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "iVar3 = local_48[0xc];" (assignment_expression "iVar3 = local_48[0xc]" identifier = (subscript_expression "local_48[0xc]" identifier [ number_literal ])) ;) (expression_statement "puVar24 = (undefined4 *)(iVar6 + iVar3);" (assignment_expression "puVar24 = (undefined4 *)(iVar6 + iVar3)" identifier = (cast_expression "(undefined4 *)(iVar6 + iVar3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + iVar3)" ( (binary_expression "iVar6 + iVar3" identifier + identifier) )))) ;) (if_statement "if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }" if (parenthesized_expression "((char *)puVar24[2] == (char *)0x0)" ( (binary_expression "(char *)puVar24[2] == (char *)0x0" (cast_expression "(char *)puVar24[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar24[2]" identifier [ number_literal ])) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }" { (expression_statement "sVar7 = strlen((char *)*puVar24);" (assignment_expression "sVar7 = strlen((char *)*puVar24)" identifier = (call_expression "strlen((char *)*puVar24)" identifier (argument_list "((char *)*puVar24)" ( (cast_expression "(char *)*puVar24" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar24" * identifier)) )))) ;) (expression_statement "local_44 = sVar7 + local_44 + 1;" (assignment_expression "local_44 = sVar7 + local_44 + 1" identifier = (binary_expression "sVar7 + local_44 + 1" (binary_expression "sVar7 + local_44" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }" else (compound_statement "{\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }" { (expression_statement "sVar7 = strlen((char *)puVar24[2]);" (assignment_expression "sVar7 = strlen((char *)puVar24[2])" identifier = (call_expression "strlen((char *)puVar24[2])" identifier (argument_list "((char *)puVar24[2])" ( (cast_expression "(char *)puVar24[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar24[2]" identifier [ number_literal ])) )))) ;) (expression_statement "local_44 = sVar7 + local_44 + 1;" (assignment_expression "local_44 = sVar7 + local_44 + 1" identifier = (binary_expression "sVar7 + local_44 + 1" (binary_expression "sVar7 + local_44" identifier + identifier) + number_literal)) ;) }))) }))) (if_statement "if (*(char *)(puVar24 + 6) != '\0') {\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }" if (parenthesized_expression "(*(char *)(puVar24 + 6) != '\0')" ( (binary_expression "*(char *)(puVar24 + 6) != '\0'" (pointer_expression "*(char *)(puVar24 + 6)" * (cast_expression "(char *)(puVar24 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 6)" ( (binary_expression "puVar24 + 6" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }" { (expression_statement "sVar7 = strlen((char *)puVar24[1]);" (assignment_expression "sVar7 = strlen((char *)puVar24[1])" identifier = (call_expression "strlen((char *)puVar24[1])" identifier (argument_list "((char *)puVar24[1])" ( (cast_expression "(char *)puVar24[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar24[1]" identifier [ number_literal ])) )))) ;) (expression_statement "local_44 = local_44 + 1 + sVar7;" (assignment_expression "local_44 = local_44 + 1 + sVar7" identifier = (binary_expression "local_44 + 1 + sVar7" (binary_expression "local_44 + 1" identifier + number_literal) + identifier)) ;) })) (expression_statement "pvVar4 = DAT_001d1274;" (assignment_expression "pvVar4 = DAT_001d1274" identifier = identifier) ;) (expression_statement "puVar24 = DAT_001d1254;" (assignment_expression "puVar24 = DAT_001d1254" identifier = identifier) ;) (expression_statement "local_40 = (char *)((int)local_40 + 1);" (assignment_expression "local_40 = (char *)((int)local_40 + 1)" identifier = (cast_expression "(char *)((int)local_40 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_40 + 1)" ( (binary_expression "(int)local_40 + 1" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)local_40 < local_48[0xb])" ( (binary_expression "(int)local_40 < local_48[0xb]" (cast_expression "(int)local_40" ( (type_descriptor "int" primitive_type) ) identifier) < (subscript_expression "local_48[0xb]" identifier [ number_literal ])) )) ;) (expression_statement "iVar6 = local_3c;" (assignment_expression "iVar6 = local_3c" identifier = identifier) ;) (if_statement "if (local_48[0xb] < 1) goto LAB_00067580;" if (parenthesized_expression "(local_48[0xb] < 1)" ( (binary_expression "local_48[0xb] < 1" (subscript_expression "local_48[0xb]" identifier [ number_literal ]) < number_literal) )) (goto_statement "goto LAB_00067580;" goto statement_identifier ;)) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "piVar13 = (int *)(iVar3 + 0xc);" (assignment_expression "piVar13 = (int *)(iVar3 + 0xc)" identifier = (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) ;) (do_statement "do {\n    if (*(int *)((int)pvVar4 + iVar18 * 4) == 0) {\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }\n    iVar18 = iVar18 + 1;\n    piVar13 = piVar13 + 7;\n    if (local_48[0xb] <= iVar18) {\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }\n  } while( true );" do (compound_statement "{\n    if (*(int *)((int)pvVar4 + iVar18 * 4) == 0) {\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }\n    iVar18 = iVar18 + 1;\n    piVar13 = piVar13 + 7;\n    if (local_48[0xb] <= iVar18) {\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }\n  }" { (if_statement "if (*(int *)((int)pvVar4 + iVar18 * 4) == 0) {\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }" if (parenthesized_expression "(*(int *)((int)pvVar4 + iVar18 * 4) == 0)" ( (binary_expression "*(int *)((int)pvVar4 + iVar18 * 4) == 0" (pointer_expression "*(int *)((int)pvVar4 + iVar18 * 4)" * (cast_expression "(int *)((int)pvVar4 + iVar18 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + iVar18 * 4)" ( (binary_expression "(int)pvVar4 + iVar18 * 4" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar18 * 4" identifier * number_literal)) )))) == number_literal) )) (compound_statement "{\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }" { (if_statement "if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }" if (parenthesized_expression "((char)piVar13[3] != '\0')" ( (binary_expression "(char)piVar13[3] != '\0'" (cast_expression "(char)piVar13[3]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar13[3]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }" { (expression_statement "iVar3 = *piVar13;" (assignment_expression "iVar3 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (goto_statement "goto joined_r0x000676c3;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }" else (compound_statement "{\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }" { (expression_statement "iVar3 = *piVar13;" (assignment_expression "iVar3 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (labeled_statement "joined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }" statement_identifier : (if_statement "if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }" { (expression_statement "piVar17 = puVar24 + (iVar6 - local_3c);" (assignment_expression "piVar17 = puVar24 + (iVar6 - local_3c)" identifier = (binary_expression "puVar24 + (iVar6 - local_3c)" identifier + (parenthesized_expression "(iVar6 - local_3c)" ( (binary_expression "iVar6 - local_3c" identifier - identifier) )))) ;) (if_statement "if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }" if (parenthesized_expression "(*piVar17 != -1)" ( (binary_expression "*piVar17 != -1" (pointer_expression "*piVar17" * identifier) != number_literal) )) (compound_statement "{\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }" { (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "piVar17 = puVar24 + (iVar6 - local_3c);" (assignment_expression "piVar17 = puVar24 + (iVar6 - local_3c)" identifier = (binary_expression "puVar24 + (iVar6 - local_3c)" identifier + (parenthesized_expression "(iVar6 - local_3c)" ( (binary_expression "iVar6 - local_3c" identifier - identifier) )))) ;) (while_statement "while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }" while (parenthesized_expression "(*piVar17 != -1)" ( (binary_expression "*piVar17 != -1" (pointer_expression "*piVar17" * identifier) != number_literal) )) (compound_statement "{\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }" { (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "piVar17 = piVar17 + 1;" (assignment_expression "piVar17 = piVar17 + 1" identifier = (binary_expression "piVar17 + 1" identifier + number_literal)) ;) })) })) (expression_statement "*piVar17 = iVar18;" (assignment_expression "*piVar17 = iVar18" (pointer_expression "*piVar17" * identifier) = identifier) ;) (expression_statement "*piVar13 = iVar6;" (assignment_expression "*piVar13 = iVar6" (pointer_expression "*piVar13" * identifier) = identifier) ;) }))) }))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "piVar13 = piVar13 + 7;" (assignment_expression "piVar13 = piVar13 + 7" identifier = (binary_expression "piVar13 + 7" identifier + number_literal)) ;) (if_statement "if (local_48[0xb] <= iVar18) {\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }" if (parenthesized_expression "(local_48[0xb] <= iVar18)" ( (binary_expression "local_48[0xb] <= iVar18" (subscript_expression "local_48[0xb]" identifier [ number_literal ]) <= identifier) )) (compound_statement "{\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }" { (labeled_statement "LAB_00067580:\n      iVar3 = DAT_001d1258;" statement_identifier : (expression_statement "iVar3 = DAT_001d1258;" (assignment_expression "iVar3 = DAT_001d1258" identifier = identifier) ;)) (if_statement "if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }" if (parenthesized_expression "((0xffff < DAT_001d1258) || (0xffff < iVar6))" ( (binary_expression "(0xffff < DAT_001d1258) || (0xffff < iVar6)" (parenthesized_expression "(0xffff < DAT_001d1258)" ( (binary_expression "0xffff < DAT_001d1258" number_literal < identifier) )) || (parenthesized_expression "(0xffff < iVar6)" ( (binary_expression "0xffff < iVar6" number_literal < identifier) ))) )) (compound_statement "{\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }" { (expression_statement "uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);" (assignment_expression "uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5)" identifier (argument_list "(0,"%X%P: error: export ordinal too large: %d\n",5)" ( number_literal , (string_literal ""%X%P: error: export ordinal too large: %d\n"" " string_content escape_sequence ") , number_literal )))) ;) (if_statement "if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }" if (parenthesized_expression "(iVar6 <= iVar3)" ( (binary_expression "iVar6 <= iVar3" identifier <= identifier) )) (compound_statement "{\n          iVar6 = iVar3;\n        }" { (expression_statement "iVar6 = iVar3;" (assignment_expression "iVar6 = iVar3" identifier = identifier) ;) })) (expression_statement "FUN_00034d20(uVar14,iVar6);" (call_expression "FUN_00034d20(uVar14,iVar6)" identifier (argument_list "(uVar14,iVar6)" ( identifier , identifier ))) ;) })) (expression_statement "iVar6 = DAT_001d1268;" (assignment_expression "iVar6 = DAT_001d1268" identifier = identifier) ;) (expression_statement "sVar7 = strlen(DAT_001d1260);" (assignment_expression "sVar7 = strlen(DAT_001d1260)" identifier = (call_expression "strlen(DAT_001d1260)" identifier (argument_list "(DAT_001d1260)" ( identifier )))) ;) (expression_statement "DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;" (assignment_expression "DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7" identifier = (binary_expression "local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7" (binary_expression "local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4" (binary_expression "local_44 + iVar6 * 6 + 0x29" (binary_expression "local_44 + iVar6 * 6" identifier + (binary_expression "iVar6 * 6" identifier * number_literal)) + number_literal) + (binary_expression "DAT_001d1270 * 4" identifier * number_literal)) + identifier)) ;) (expression_statement "FUN_00061a40();" (call_expression "FUN_00061a40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00066c30(DAT_001d12a0);" (call_expression "FUN_00066c30(DAT_001d12a0)" identifier (argument_list "(DAT_001d12a0)" ( identifier ))) ;) (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "code_r0x00066da5:\n  piVar13 = (int *)*piVar13;" statement_identifier : (expression_statement "piVar13 = (int *)*piVar13;" (assignment_expression "piVar13 = (int *)*piVar13" identifier = (cast_expression "(int *)*piVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;)) (expression_statement "**(uint **)(iVar6 + 0x14) = *puVar1;" (assignment_expression "**(uint **)(iVar6 + 0x14) = *puVar1" (pointer_expression "**(uint **)(iVar6 + 0x14)" * (pointer_expression "*(uint **)(iVar6 + 0x14)" * (cast_expression "(uint **)(iVar6 + 0x14)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) ))))) = (pointer_expression "*puVar1" * identifier)) ;) (goto_statement "goto joined_r0x00066d64;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) })) (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 (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , LIT , IDENT , (binary_expression IDENT >> LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( 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 ]))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (subscript_expression IDENT [ LIT ]) , 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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < (pointer_expression * IDENT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (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) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) )))) )) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") , 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 , LIT , LIT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (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 ')) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) >> LIT) ))) ^ LIT) )) & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (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 ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (return_statement return ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) ))))) ;) (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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) , LIT , LIT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) ))) ))))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression IDENT == LIT)) ))) )) || (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_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) )))) | (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) | (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) | (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) | (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (subscript_expression IDENT [ LIT ])) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) << LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (subscript_expression IDENT [ LIT ]) * LIT) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) + IDENT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (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 , LIT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , 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 = IDENT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (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 = (binary_expression IDENT + 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 ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (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 = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_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 : (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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }) (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)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (goto_statement goto statement_identifier ;) }))) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (char_literal ' escape_sequence '))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (char_literal ' character '))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (char_literal ' character '))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT || IDENT) )) || IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT || IDENT) )) || IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - 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 (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) == 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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (pointer_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 , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) }))) }))) (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 = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (subscript_expression IDENT [ LIT ])) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (while_statement while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) || (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) + (binary_expression IDENT * LIT)) + IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })) }) while (parenthesized_expression ( BOOL )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * 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) ))))) = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "void FUN_00066ca0(undefined4 *param_1,byte *param_2)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  int iVar3;\n  void *pvVar4;\n  undefined *puVar5;\n  int iVar6;\n  size_t sVar7;\n  char *pcVar8;\n  char *pcVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined4 uVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  char *pcVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int iVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  int iVar21;\n  char cVar22;\n  byte *pbVar23;\n  undefined4 *puVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  bool bVar28;\n  byte bVar29;\n  int *local_48;\n  uint local_44;\n  char *local_40;\n  int local_3c;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar29 = 0;\n  uStack_14 = 0x66ca9;\n  FUN_00063a00(*(undefined4 *)param_1[1]);\n  FUN_00066c30(param_1);\n  if (DAT_001d1218 == (undefined4 *)0x0) {\n    DAT_001d1218 = (undefined4 *)FUN_000589a0();\n  }\n  for (iVar6 = *(int *)(param_2 + 0x3c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x9c)) {\n    iVar3 = bfd_get_section_by_name(iVar6,".drectve");\n    if (iVar3 != 0) {\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }\n  }\n  piVar13 = (int *)DAT_001d1218[0x12];\njoined_r0x00066d64:\n  if (piVar13 != (int *)0x0) {\n    do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );\n  }\n  bVar2 = *param_2;\n  if ((bVar2 & 2) == 0) {\n    if (DAT_001d1218[0xb] != 0) {\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }\n    puVar24 = DAT_001d1218;\n    if ((DAT_001d1214 != 0) && (DAT_001d1210 == 0)) {\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }\nLAB_00067375:\n    if ((bVar2 & 1) == 0) {\n      return;\n    }\n  }\n  else {\n    if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }\n    local_48[0xb] = iVar3;\n    DAT_001d1278 = xmalloc(iVar6);\n    DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);\n    puVar24 = DAT_001d1218;\n    memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);\n    iVar6 = puVar24[0xb];\n    DAT_001d1258 = 0;\n    DAT_001d125c = 0x10000;\n    DAT_001d126c = 0;\n    DAT_001d1268 = 0;\n    DAT_001d1264 = 0;\n    if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }\njoined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }\n  }\n  DAT_001d1260 = (char *)*puVar24;\n  if (DAT_001d1260 == (char *)0x0) {\n    DAT_001d1260 = (char *)*param_1;\n    cVar22 = *DAT_001d1260;\n    if (cVar22 != '\0') {\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }\n  }\n  if ((DAT_001d1264 == 0) || (DAT_001d1258 <= DAT_001d126c)) {\n    DAT_001d125c = 1;\n    DAT_001d1258 = DAT_001d126c;\n  }\n  else {\n    iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;\n    if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }\n  }\n  DAT_001d1270 = (DAT_001d1258 - DAT_001d125c) + 1;\n  puVar11 = (undefined4 *)xmalloc(DAT_001d1270 * 4);\n  puVar24 = puVar11 + DAT_001d1270;\n  DAT_001d1254 = puVar11;\n  if (0 < DAT_001d1270) {\n    do {\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    } while (puVar24 != puVar11);\n  }\n  local_48 = DAT_001d1218;\n  local_3c = DAT_001d125c;\n  if ((int)DAT_001d1218[0xb] < 1) {\n    local_44 = 0;\n    iVar6 = DAT_001d125c;\n    goto LAB_00067580;\n  }\n  local_44 = 0;\n  local_40 = (char *)0x0;\n  iVar3 = DAT_001d1218[0xc];\n  do {\n    iVar6 = (int)local_40 * 0x1c;\n    puVar24 = (undefined4 *)(iVar3 + iVar6);\n    if ((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))\n    {\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }\n    else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }\n    if (*(char *)(puVar24 + 6) != '\0') {\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }\n    pvVar4 = DAT_001d1274;\n    puVar24 = DAT_001d1254;\n    local_40 = (char *)((int)local_40 + 1);\n  } while ((int)local_40 < local_48[0xb]);\n  iVar6 = local_3c;\n  if (local_48[0xb] < 1) goto LAB_00067580;\n  iVar18 = 0;\n  piVar13 = (int *)(iVar3 + 0xc);\n  do {\n    if (*(int *)((int)pvVar4 + iVar18 * 4) == 0) {\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }\n    iVar18 = iVar18 + 1;\n    piVar13 = piVar13 + 7;\n    if (local_48[0xb] <= iVar18) {\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }\n  } while( true );\ncode_r0x00066da5:\n  piVar13 = (int *)*piVar13;\n  **(uint **)(iVar6 + 0x14) = *puVar1;\n  goto joined_r0x00066d64;\n}" (primitive_type "void") (function_declarator "FUN_00066ca0(undefined4 *param_1,byte *param_2)" (identifier "FUN_00066ca0") (parameter_list "(undefined4 *param_1,byte *param_2)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "byte *param_2" (type_identifier "byte") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  uint *puVar1;\n  byte bVar2;\n  int iVar3;\n  void *pvVar4;\n  undefined *puVar5;\n  int iVar6;\n  size_t sVar7;\n  char *pcVar8;\n  char *pcVar9;\n  undefined4 *puVar10;\n  undefined4 *puVar11;\n  undefined4 uVar12;\n  int *piVar13;\n  undefined4 uVar14;\n  char *pcVar15;\n  undefined4 uVar16;\n  int *piVar17;\n  int iVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  int iVar21;\n  char cVar22;\n  byte *pbVar23;\n  undefined4 *puVar24;\n  bool bVar25;\n  bool bVar26;\n  bool bVar27;\n  bool bVar28;\n  byte bVar29;\n  int *local_48;\n  uint local_44;\n  char *local_40;\n  int local_3c;\n  int local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar29 = 0;\n  uStack_14 = 0x66ca9;\n  FUN_00063a00(*(undefined4 *)param_1[1]);\n  FUN_00066c30(param_1);\n  if (DAT_001d1218 == (undefined4 *)0x0) {\n    DAT_001d1218 = (undefined4 *)FUN_000589a0();\n  }\n  for (iVar6 = *(int *)(param_2 + 0x3c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x9c)) {\n    iVar3 = bfd_get_section_by_name(iVar6,".drectve");\n    if (iVar3 != 0) {\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }\n  }\n  piVar13 = (int *)DAT_001d1218[0x12];\njoined_r0x00066d64:\n  if (piVar13 != (int *)0x0) {\n    do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );\n  }\n  bVar2 = *param_2;\n  if ((bVar2 & 2) == 0) {\n    if (DAT_001d1218[0xb] != 0) {\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }\n    puVar24 = DAT_001d1218;\n    if ((DAT_001d1214 != 0) && (DAT_001d1210 == 0)) {\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }\nLAB_00067375:\n    if ((bVar2 & 1) == 0) {\n      return;\n    }\n  }\n  else {\n    if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }\n    local_48[0xb] = iVar3;\n    DAT_001d1278 = xmalloc(iVar6);\n    DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);\n    puVar24 = DAT_001d1218;\n    memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);\n    iVar6 = puVar24[0xb];\n    DAT_001d1258 = 0;\n    DAT_001d125c = 0x10000;\n    DAT_001d126c = 0;\n    DAT_001d1268 = 0;\n    DAT_001d1264 = 0;\n    if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }\njoined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }\n  }\n  DAT_001d1260 = (char *)*puVar24;\n  if (DAT_001d1260 == (char *)0x0) {\n    DAT_001d1260 = (char *)*param_1;\n    cVar22 = *DAT_001d1260;\n    if (cVar22 != '\0') {\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }\n  }\n  if ((DAT_001d1264 == 0) || (DAT_001d1258 <= DAT_001d126c)) {\n    DAT_001d125c = 1;\n    DAT_001d1258 = DAT_001d126c;\n  }\n  else {\n    iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;\n    if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }\n  }\n  DAT_001d1270 = (DAT_001d1258 - DAT_001d125c) + 1;\n  puVar11 = (undefined4 *)xmalloc(DAT_001d1270 * 4);\n  puVar24 = puVar11 + DAT_001d1270;\n  DAT_001d1254 = puVar11;\n  if (0 < DAT_001d1270) {\n    do {\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    } while (puVar24 != puVar11);\n  }\n  local_48 = DAT_001d1218;\n  local_3c = DAT_001d125c;\n  if ((int)DAT_001d1218[0xb] < 1) {\n    local_44 = 0;\n    iVar6 = DAT_001d125c;\n    goto LAB_00067580;\n  }\n  local_44 = 0;\n  local_40 = (char *)0x0;\n  iVar3 = DAT_001d1218[0xc];\n  do {\n    iVar6 = (int)local_40 * 0x1c;\n    puVar24 = (undefined4 *)(iVar3 + iVar6);\n    if ((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))\n    {\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }\n    else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }\n    if (*(char *)(puVar24 + 6) != '\0') {\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }\n    pvVar4 = DAT_001d1274;\n    puVar24 = DAT_001d1254;\n    local_40 = (char *)((int)local_40 + 1);\n  } while ((int)local_40 < local_48[0xb]);\n  iVar6 = local_3c;\n  if (local_48[0xb] < 1) goto LAB_00067580;\n  iVar18 = 0;\n  piVar13 = (int *)(iVar3 + 0xc);\n  do {\n    if (*(int *)((int)pvVar4 + iVar18 * 4) == 0) {\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }\n    iVar18 = iVar18 + 1;\n    piVar13 = piVar13 + 7;\n    if (local_48[0xb] <= iVar18) {\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }\n  } while( true );\ncode_r0x00066da5:\n  piVar13 = (int *)*piVar13;\n  **(uint **)(iVar6 + 0x14) = *puVar1;\n  goto joined_r0x00066d64;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "void *pvVar4;" (primitive_type "void") (pointer_declarator "*pvVar4" (* "*") (identifier "pvVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "size_t sVar7;" (primitive_type "size_t") (identifier "sVar7") (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined4 *puVar11;" (type_identifier "undefined4") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "undefined4 uVar14;" (type_identifier "undefined4") (identifier "uVar14") (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "undefined4 uVar16;" (type_identifier "undefined4") (identifier "uVar16") (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "byte *pbVar20;" (type_identifier "byte") (pointer_declarator "*pbVar20" (* "*") (identifier "pbVar20")) (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "char cVar22;" (primitive_type "char") (identifier "cVar22") (; ";")) (declaration "byte *pbVar23;" (type_identifier "byte") (pointer_declarator "*pbVar23" (* "*") (identifier "pbVar23")) (; ";")) (declaration "undefined4 *puVar24;" (type_identifier "undefined4") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "bool bVar25;" (primitive_type "bool") (identifier "bVar25") (; ";")) (declaration "bool bVar26;" (primitive_type "bool") (identifier "bVar26") (; ";")) (declaration "bool bVar27;" (primitive_type "bool") (identifier "bVar27") (; ";")) (declaration "bool bVar28;" (primitive_type "bool") (identifier "bVar28") (; ";")) (declaration "byte bVar29;" (type_identifier "byte") (identifier "bVar29") (; ";")) (declaration "int *local_48;" (primitive_type "int") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "uint local_44;" (type_identifier "uint") (identifier "local_44") (; ";")) (declaration "char *local_40;" (primitive_type "char") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (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 "bVar29 = 0;" (assignment_expression "bVar29 = 0" (identifier "bVar29") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x66ca9;" (assignment_expression "uStack_14 = 0x66ca9" (identifier "uStack_14") (= "=") (number_literal "0x66ca9")) (; ";")) (expression_statement "FUN_00063a00(*(undefined4 *)param_1[1]);" (call_expression "FUN_00063a00(*(undefined4 *)param_1[1])" (identifier "FUN_00063a00") (argument_list "(*(undefined4 *)param_1[1])" (( "(") (pointer_expression "*(undefined4 *)param_1[1]" (* "*") (cast_expression "(undefined4 *)param_1[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) () ")"))) (; ";")) (expression_statement "FUN_00066c30(param_1);" (call_expression "FUN_00066c30(param_1)" (identifier "FUN_00066c30") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (if_statement "if (DAT_001d1218 == (undefined4 *)0x0) {\n    DAT_001d1218 = (undefined4 *)FUN_000589a0();\n  }" (if "if") (parenthesized_expression "(DAT_001d1218 == (undefined4 *)0x0)" (( "(") (binary_expression "DAT_001d1218 == (undefined4 *)0x0" (identifier "DAT_001d1218") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    DAT_001d1218 = (undefined4 *)FUN_000589a0();\n  }" ({ "{") (expression_statement "DAT_001d1218 = (undefined4 *)FUN_000589a0();" (assignment_expression "DAT_001d1218 = (undefined4 *)FUN_000589a0()" (identifier "DAT_001d1218") (= "=") (cast_expression "(undefined4 *)FUN_000589a0()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000589a0()" (identifier "FUN_000589a0") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}"))) (for_statement "for (iVar6 = *(int *)(param_2 + 0x3c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x9c)) {\n    iVar3 = bfd_get_section_by_name(iVar6,".drectve");\n    if (iVar3 != 0) {\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }\n  }" (for "for") (( "(") (assignment_expression "iVar6 = *(int *)(param_2 + 0x3c)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(param_2 + 0x3c)" (* "*") (cast_expression "(int *)(param_2 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3c)" (( "(") (binary_expression "param_2 + 0x3c" (identifier "param_2") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar6 = *(int *)(iVar6 + 0x9c)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar6 + 0x9c)" (* "*") (cast_expression "(int *)(iVar6 + 0x9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x9c)" (( "(") (binary_expression "iVar6 + 0x9c" (identifier "iVar6") (+ "+") (number_literal "0x9c")) () ")"))))) () ")") (compound_statement "{\n    iVar3 = bfd_get_section_by_name(iVar6,".drectve");\n    if (iVar3 != 0) {\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }\n  }" ({ "{") (expression_statement "iVar3 = bfd_get_section_by_name(iVar6,".drectve");" (assignment_expression "iVar3 = bfd_get_section_by_name(iVar6,".drectve")" (identifier "iVar3") (= "=") (call_expression "bfd_get_section_by_name(iVar6,".drectve")" (identifier "bfd_get_section_by_name") (argument_list "(iVar6,".drectve")" (( "(") (identifier "iVar6") (, ",") (string_literal "".drectve"" (" """) (string_content ".drectve") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar18 = *(int *)(iVar3 + 0x2c);\n      pvVar4 = (void *)xmalloc(iVar18);\n      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);\n      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);\n      free(pvVar4);\n    }" ({ "{") (expression_statement "iVar18 = *(int *)(iVar3 + 0x2c);" (assignment_expression "iVar18 = *(int *)(iVar3 + 0x2c)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(iVar3 + 0x2c)" (* "*") (cast_expression "(int *)(iVar3 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2c)" (( "(") (binary_expression "iVar3 + 0x2c" (identifier "iVar3") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "pvVar4 = (void *)xmalloc(iVar18);" (assignment_expression "pvVar4 = (void *)xmalloc(iVar18)" (identifier "pvVar4") (= "=") (cast_expression "(void *)xmalloc(iVar18)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(iVar18)" (identifier "xmalloc") (argument_list "(iVar18)" (( "(") (identifier "iVar18") () ")"))))) (; ";")) (expression_statement "bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);" (call_expression "bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f)" (identifier "bfd_get_section_contents") (argument_list "(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f)" (( "(") (identifier "iVar6") (, ",") (identifier "iVar3") (, ",") (identifier "pvVar4") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "iVar18") (, ",") (binary_expression "iVar18 >> 0x1f" (identifier "iVar18") (>> ">>") (number_literal "0x1f")) () ")"))) (; ";")) (expression_statement "FUN_0005a570(DAT_001d1218,pvVar4,iVar18);" (call_expression "FUN_0005a570(DAT_001d1218,pvVar4,iVar18)" (identifier "FUN_0005a570") (argument_list "(DAT_001d1218,pvVar4,iVar18)" (( "(") (identifier "DAT_001d1218") (, ",") (identifier "pvVar4") (, ",") (identifier "iVar18") () ")"))) (; ";")) (expression_statement "free(pvVar4);" (call_expression "free(pvVar4)" (identifier "free") (argument_list "(pvVar4)" (( "(") (identifier "pvVar4") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "piVar13 = (int *)DAT_001d1218[0x12];" (assignment_expression "piVar13 = (int *)DAT_001d1218[0x12]" (identifier "piVar13") (= "=") (cast_expression "(int *)DAT_001d1218[0x12]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_001d1218[0x12]" (identifier "DAT_001d1218") ([ "[") (number_literal "0x12") (] "]")))) (; ";")) (labeled_statement "joined_r0x00066d64:\n  if (piVar13 != (int *)0x0) {\n    do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );\n  }" (statement_identifier "joined_r0x00066d64") (: ":") (if_statement "if (piVar13 != (int *)0x0) {\n    do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(piVar13 != (int *)0x0)" (( "(") (binary_expression "piVar13 != (int *)0x0" (identifier "piVar13") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );\n  }" ({ "{") (do_statement "do {\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    } while( true );" (do "do") (compound_statement "{\n      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);\n      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }\n      piVar13 = (int *)*piVar13;\n      if (piVar13 == (int *)0x0) break;\n    }" ({ "{") (expression_statement "iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);" (assignment_expression "iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0)" (identifier "iVar6") (= "=") (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0)" (identifier "bfd_link_hash_lookup") (argument_list "(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0)" (( "(") (pointer_expression "*(undefined4 *)(param_2 + 0x20)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (subscript_expression "piVar13[1]" (identifier "piVar13") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }" (if "if") (parenthesized_expression "((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05'))" (( "(") (binary_expression "(iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')" (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar6 + 0xc) == '\x05')" (( "(") (binary_expression "*(char *)(iVar6 + 0xc) == '\x05'" (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 "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        puVar1 = (uint *)(piVar13 + 2);\n        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;\n      }" ({ "{") (expression_statement "puVar1 = (uint *)(piVar13 + 2);" (assignment_expression "puVar1 = (uint *)(piVar13 + 2)" (identifier "puVar1") (= "=") (cast_expression "(uint *)(piVar13 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar13 + 2)" (( "(") (binary_expression "piVar13 + 2" (identifier "piVar13") (+ "+") (number_literal "2")) () ")")))) (; ";")) (if_statement "if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;" (if "if") (parenthesized_expression "(**(uint **)(iVar6 + 0x14) < *puVar1)" (( "(") (binary_expression "**(uint **)(iVar6 + 0x14) < *puVar1" (pointer_expression "**(uint **)(iVar6 + 0x14)" (* "*") (pointer_expression "*(uint **)(iVar6 + 0x14)" (* "*") (cast_expression "(uint **)(iVar6 + 0x14)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")"))))) (< "<") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) () ")")) (goto_statement "goto code_r0x00066da5;" (goto "goto") (statement_identifier "code_r0x00066da5") (; ";"))) (} "}"))) (expression_statement "piVar13 = (int *)*piVar13;" (assignment_expression "piVar13 = (int *)*piVar13" (identifier "piVar13") (= "=") (cast_expression "(int *)*piVar13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")))) (; ";")) (if_statement "if (piVar13 == (int *)0x0) break;" (if "if") (parenthesized_expression "(piVar13 == (int *)0x0)" (( "(") (binary_expression "piVar13 == (int *)0x0" (identifier "piVar13") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))) (expression_statement "bVar2 = *param_2;" (assignment_expression "bVar2 = *param_2" (identifier "bVar2") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if ((bVar2 & 2) == 0) {\n    if (DAT_001d1218[0xb] != 0) {\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }\n    puVar24 = DAT_001d1218;\n    if ((DAT_001d1214 != 0) && (DAT_001d1210 == 0)) {\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }\nLAB_00067375:\n    if ((bVar2 & 1) == 0) {\n      return;\n    }\n  }\n  else {\n    if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }\n    local_48[0xb] = iVar3;\n    DAT_001d1278 = xmalloc(iVar6);\n    DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);\n    puVar24 = DAT_001d1218;\n    memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);\n    iVar6 = puVar24[0xb];\n    DAT_001d1258 = 0;\n    DAT_001d125c = 0x10000;\n    DAT_001d126c = 0;\n    DAT_001d1268 = 0;\n    DAT_001d1264 = 0;\n    if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }\njoined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }\n  }" (if "if") (parenthesized_expression "((bVar2 & 2) == 0)" (( "(") (binary_expression "(bVar2 & 2) == 0" (parenthesized_expression "(bVar2 & 2)" (( "(") (binary_expression "bVar2 & 2" (identifier "bVar2") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (DAT_001d1218[0xb] != 0) {\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }\n    puVar24 = DAT_001d1218;\n    if ((DAT_001d1214 != 0) && (DAT_001d1210 == 0)) {\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }\nLAB_00067375:\n    if ((bVar2 & 1) == 0) {\n      return;\n    }\n  }" ({ "{") (if_statement "if (DAT_001d1218[0xb] != 0) {\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }" (if "if") (parenthesized_expression "(DAT_001d1218[0xb] != 0)" (( "(") (binary_expression "DAT_001d1218[0xb] != 0" (subscript_expression "DAT_001d1218[0xb]" (identifier "DAT_001d1218") ([ "[") (number_literal "0xb") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (DAT_001d1214 != 0) goto LAB_00066fad;\n      iVar6 = DAT_001d1218[0xb];\n      if (DAT_001d120c != 0) goto LAB_00066fde;\n      goto LAB_000671fd;\n    }" ({ "{") (if_statement "if (DAT_001d1214 != 0) goto LAB_00066fad;" (if "if") (parenthesized_expression "(DAT_001d1214 != 0)" (( "(") (binary_expression "DAT_001d1214 != 0" (identifier "DAT_001d1214") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00066fad;" (goto "goto") (statement_identifier "LAB_00066fad") (; ";"))) (expression_statement "iVar6 = DAT_001d1218[0xb];" (assignment_expression "iVar6 = DAT_001d1218[0xb]" (identifier "iVar6") (= "=") (subscript_expression "DAT_001d1218[0xb]" (identifier "DAT_001d1218") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (if_statement "if (DAT_001d120c != 0) goto LAB_00066fde;" (if "if") (parenthesized_expression "(DAT_001d120c != 0)" (( "(") (binary_expression "DAT_001d120c != 0" (identifier "DAT_001d120c") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00066fde;" (goto "goto") (statement_identifier "LAB_00066fde") (; ";"))) (goto_statement "goto LAB_000671fd;" (goto "goto") (statement_identifier "LAB_000671fd") (; ";")) (} "}"))) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" (identifier "puVar24") (= "=") (identifier "DAT_001d1218")) (; ";")) (if_statement "if ((DAT_001d1214 != 0) && (DAT_001d1210 == 0)) {\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }" (if "if") (parenthesized_expression "((DAT_001d1214 != 0) && (DAT_001d1210 == 0))" (( "(") (binary_expression "(DAT_001d1214 != 0) && (DAT_001d1210 == 0)" (parenthesized_expression "(DAT_001d1214 != 0)" (( "(") (binary_expression "DAT_001d1214 != 0" (identifier "DAT_001d1214") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(DAT_001d1210 == 0)" (( "(") (binary_expression "DAT_001d1210 == 0" (identifier "DAT_001d1210") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);\n      if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }\nLAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];\n      puVar24 = DAT_001d1218;\n      if (iVar6 != 0) goto LAB_00066fd0;\n      goto LAB_0006736e;\n    }" ({ "{") (labeled_statement "LAB_00066df0:\n      local_44 = *(uint *)(param_2 + 0x3c);" (statement_identifier "LAB_00066df0") (: ":") (expression_statement "local_44 = *(uint *)(param_2 + 0x3c);" (assignment_expression "local_44 = *(uint *)(param_2 + 0x3c)" (identifier "local_44") (= "=") (pointer_expression "*(uint *)(param_2 + 0x3c)" (* "*") (cast_expression "(uint *)(param_2 + 0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3c)" (( "(") (binary_expression "param_2 + 0x3c" (identifier "param_2") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";"))) (if_statement "if (local_44 != 0) {\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }" (if "if") (parenthesized_expression "(local_44 != 0)" (( "(") (binary_expression "local_44 != 0" (identifier "local_44") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;\n        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }\n        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar14,local_44);\n        iVar6 = DAT_001d1218[0xb];\n        puVar24 = DAT_001d1218;\n        goto joined_r0x00067b8d;\n      }" ({ "{") (expression_statement "puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;" (assignment_expression "puVar5 = PTR__bfd_std_section_001cefbc + 0xc0" (identifier "puVar5") (= "=") (binary_expression "PTR__bfd_std_section_001cefbc + 0xc0" (identifier "PTR__bfd_std_section_001cefbc") (+ "+") (number_literal "0xc0"))) (; ";")) (while_statement "while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }" (while "while") (parenthesized_expression "(iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0)" (( "(") (comma_expression "iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0" (assignment_expression "iVar6 = bfd_generic_link_read_symbols(local_44)" (identifier "iVar6") (= "=") (call_expression "bfd_generic_link_read_symbols(local_44)" (identifier "bfd_generic_link_read_symbols") (argument_list "(local_44)" (( "(") (identifier "local_44") () ")")))) (, ",") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n          if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }\nLAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);\n          if (local_44 == 0) goto LAB_00066fbb;\n        }" ({ "{") (if_statement "if (0 < *(int *)(local_44 + 0x7c)) {\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }" (if "if") (parenthesized_expression "(0 < *(int *)(local_44 + 0x7c))" (( "(") (binary_expression "0 < *(int *)(local_44 + 0x7c)" (number_literal "0") (< "<") (pointer_expression "*(int *)(local_44 + 0x7c)" (* "*") (cast_expression "(int *)(local_44 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_44 + 0x7c)" (( "(") (binary_expression "local_44 + 0x7c" (identifier "local_44") (+ "+") (number_literal "0x7c")) () ")"))))) () ")")) (compound_statement "{\n            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);\n            local_48 = *(int **)(local_44 + 0x78);\n            do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);\n          }" ({ "{") (expression_statement "piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);" (assignment_expression "piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c)" (identifier "piVar13") (= "=") (binary_expression "*(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c)" (pointer_expression "*(int **)(local_44 + 0x78)" (* "*") (cast_expression "(int **)(local_44 + 0x78)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_44 + 0x78)" (( "(") (binary_expression "local_44 + 0x78" (identifier "local_44") (+ "+") (number_literal "0x78")) () ")")))) (+ "+") (pointer_expression "*(int *)(local_44 + 0x7c)" (* "*") (cast_expression "(int *)(local_44 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_44 + 0x7c)" (( "(") (binary_expression "local_44 + 0x7c" (identifier "local_44") (+ "+") (number_literal "0x7c")) () ")")))))) (; ";")) (expression_statement "local_48 = *(int **)(local_44 + 0x78);" (assignment_expression "local_48 = *(int **)(local_44 + 0x78)" (identifier "local_48") (= "=") (pointer_expression "*(int **)(local_44 + 0x78)" (* "*") (cast_expression "(int **)(local_44 + 0x78)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_44 + 0x78)" (( "(") (binary_expression "local_44 + 0x78" (identifier "local_44") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (do_statement "do {\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            } while (piVar13 != piVar17);" (do "do") (compound_statement "{\n              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }\n              bVar26 = DAT_001d1478 == 0;\n              if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }\n              bVar25 = false;\n              pbVar19 = *(byte **)(iVar6 + 4);\n              iVar6 = 6;\n              pbVar20 = pbVar19;\n              pbVar23 = (byte *)0x1adaf4;\n              do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;\n              sVar7 = strlen((char *)pbVar19);\n              pcVar8 = (char *)xmalloc(sVar7 + 7);\n              sprintf(pcVar8,"%s%s","__imp_",pbVar19);\n              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);\n              free(pcVar8);\n              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;\n              if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }\n              iVar6 = FUN_00062820(pbVar19);\n              if (iVar6 == 0) goto LAB_00066f48;\n              local_20[0] = 0;\n              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);\n              if (local_20[0] != 0) goto LAB_00066f48;\n              piVar17 = local_48 + 1;\n              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;\n              local_48 = piVar17;\n            }" ({ "{") (while_statement "while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }" (while "while") (parenthesized_expression "((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0)))))" (( "(") (parenthesized_expression "(iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))" (( "(") (comma_expression "iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0)))" (assignment_expression "iVar6 = *local_48" (identifier "iVar6") (= "=") (pointer_expression "*local_48" (* "*") (identifier "local_48"))) (, ",") (binary_expression "*(undefined **)(iVar6 + 0x14) == puVar5 ||\n                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0)))" (binary_expression "*(undefined **)(iVar6 + 0x14) == puVar5" (pointer_expression "*(undefined **)(iVar6 + 0x14)" (* "*") (cast_expression "(undefined **)(iVar6 + 0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")")))) (== "==") (identifier "puVar5")) (|| "||") (parenthesized_expression "(((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0)))" (( "(") (parenthesized_expression "((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))" (( "(") (binary_expression "(*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0)" (binary_expression "(*(uint *)(iVar6 + 0x10) & 2) == 0" (parenthesized_expression "(*(uint *)(iVar6 + 0x10) & 2)" (( "(") (binary_expression "*(uint *)(iVar6 + 0x10) & 2" (pointer_expression "*(uint *)(iVar6 + 0x10)" (* "*") (cast_expression "(uint *)(iVar6 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x10)" (( "(") (binary_expression "iVar6 + 0x10" (identifier "iVar6") (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(*(uint *)(iVar6 + 0x10) != 0)" (( "(") (binary_expression "*(uint *)(iVar6 + 0x10) != 0" (pointer_expression "*(uint *)(iVar6 + 0x10)" (* "*") (cast_expression "(uint *)(iVar6 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x10)" (( "(") (binary_expression "iVar6 + 0x10" (identifier "iVar6") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")")))) () ")")) () ")")) (compound_statement "{\nLAB_00066f48:\n                local_48 = local_48 + 1;\n                if (piVar13 == local_48) goto LAB_00067678;\n              }" ({ "{") (labeled_statement "LAB_00066f48:\n                local_48 = local_48 + 1;" (statement_identifier "LAB_00066f48") (: ":") (expression_statement "local_48 = local_48 + 1;" (assignment_expression "local_48 = local_48 + 1" (identifier "local_48") (= "=") (binary_expression "local_48 + 1" (identifier "local_48") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (piVar13 == local_48) goto LAB_00067678;" (if "if") (parenthesized_expression "(piVar13 == local_48)" (( "(") (binary_expression "piVar13 == local_48" (identifier "piVar13") (== "==") (identifier "local_48")) () ")")) (goto_statement "goto LAB_00067678;" (goto "goto") (statement_identifier "LAB_00067678") (; ";"))) (} "}"))) (expression_statement "bVar26 = DAT_001d1478 == 0;" (assignment_expression "bVar26 = DAT_001d1478 == 0" (identifier "bVar26") (= "=") (binary_expression "DAT_001d1478 == 0" (identifier "DAT_001d1478") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!bVar26) {\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }" (if "if") (parenthesized_expression "(!bVar26)" (( "(") (unary_expression "!bVar26" (! "!") (identifier "bVar26")) () ")")) (compound_statement "{\n                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));\n                bVar26 = iVar6 == 0;\n                if (!bVar26) goto LAB_00066f48;\n                iVar6 = *local_48;\n              }" ({ "{") (expression_statement "iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));" (assignment_expression "iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4))" (identifier "iVar6") (= "=") (call_expression "bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4))" (identifier "bfd_hide_sym_by_version") (argument_list "(DAT_001d1478,*(undefined4 *)(iVar6 + 4))" (( "(") (identifier "DAT_001d1478") (, ",") (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 "bVar26 = iVar6 == 0;" (assignment_expression "bVar26 = iVar6 == 0" (identifier "bVar26") (= "=") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!bVar26) goto LAB_00066f48;" (if "if") (parenthesized_expression "(!bVar26)" (( "(") (unary_expression "!bVar26" (! "!") (identifier "bVar26")) () ")")) (goto_statement "goto LAB_00066f48;" (goto "goto") (statement_identifier "LAB_00066f48") (; ";"))) (expression_statement "iVar6 = *local_48;" (assignment_expression "iVar6 = *local_48" (identifier "iVar6") (= "=") (pointer_expression "*local_48" (* "*") (identifier "local_48"))) (; ";")) (} "}"))) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "pbVar19 = *(byte **)(iVar6 + 4);" (assignment_expression "pbVar19 = *(byte **)(iVar6 + 4)" (identifier "pbVar19") (= "=") (pointer_expression "*(byte **)(iVar6 + 4)" (* "*") (cast_expression "(byte **)(iVar6 + 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar6 = 6;" (assignment_expression "iVar6 = 6" (identifier "iVar6") (= "=") (number_literal "6")) (; ";")) (expression_statement "pbVar20 = pbVar19;" (assignment_expression "pbVar20 = pbVar19" (identifier "pbVar20") (= "=") (identifier "pbVar19")) (; ";")) (expression_statement "pbVar23 = (byte *)0x1adaf4;" (assignment_expression "pbVar23 = (byte *)0x1adaf4" (identifier "pbVar23") (= "=") (cast_expression "(byte *)0x1adaf4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1adaf4"))) (; ";")) (do_statement "do {\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n              } while (bVar26);" (do "do") (compound_statement "{\n                if (iVar6 == 0) break;\n                iVar6 = iVar6 + -1;\n                bVar25 = *pbVar20 < *pbVar23;\n                bVar26 = *pbVar20 == *pbVar23;\n                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n                pbVar23 = pbVar23 + (uint)bVar29 * -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 "bVar25 = *pbVar20 < *pbVar23;" (assignment_expression "bVar25 = *pbVar20 < *pbVar23" (identifier "bVar25") (= "=") (binary_expression "*pbVar20 < *pbVar23" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")))) (; ";")) (expression_statement "bVar26 = *pbVar20 == *pbVar23;" (assignment_expression "bVar26 = *pbVar20 == *pbVar23" (identifier "bVar26") (= "=") (binary_expression "*pbVar20 == *pbVar23" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar29 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar29 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar29 * -2" (cast_expression "(uint)bVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1" (identifier "pbVar23") (= "=") (binary_expression "pbVar23 + (uint)bVar29 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar29 * -2" (identifier "pbVar23") (+ "+") (binary_expression "(uint)bVar29 * -2" (cast_expression "(uint)bVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (if_statement "if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;" (if "if") (parenthesized_expression "((!bVar25 && !bVar26) == bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar26) == bVar25" (parenthesized_expression "(!bVar25 && !bVar26)" (( "(") (binary_expression "!bVar25 && !bVar26" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar25")) () ")")) (goto_statement "goto LAB_00066f48;" (goto "goto") (statement_identifier "LAB_00066f48") (; ";"))) (expression_statement "sVar7 = strlen((char *)pbVar19);" (assignment_expression "sVar7 = strlen((char *)pbVar19)" (identifier "sVar7") (= "=") (call_expression "strlen((char *)pbVar19)" (identifier "strlen") (argument_list "((char *)pbVar19)" (( "(") (cast_expression "(char *)pbVar19" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar19")) () ")")))) (; ";")) (expression_statement "pcVar8 = (char *)xmalloc(sVar7 + 7);" (assignment_expression "pcVar8 = (char *)xmalloc(sVar7 + 7)" (identifier "pcVar8") (= "=") (cast_expression "(char *)xmalloc(sVar7 + 7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar7 + 7)" (identifier "xmalloc") (argument_list "(sVar7 + 7)" (( "(") (binary_expression "sVar7 + 7" (identifier "sVar7") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "sprintf(pcVar8,"%s%s","__imp_",pbVar19);" (call_expression "sprintf(pcVar8,"%s%s","__imp_",pbVar19)" (identifier "sprintf") (argument_list "(pcVar8,"%s%s","__imp_",pbVar19)" (( "(") (identifier "pcVar8") (, ",") (string_literal ""%s%s"" (" """) (string_content "%s%s") (" """)) (, ",") (string_literal ""__imp_"" (" """) (string_content "__imp_") (" """)) (, ",") (identifier "pbVar19") () ")"))) (; ";")) (expression_statement "iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);" (assignment_expression "iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0)" (identifier "iVar6") (= "=") (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0)" (identifier "bfd_link_hash_lookup") (argument_list "(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0)" (( "(") (pointer_expression "*(undefined4 *)(param_2 + 0x20)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (identifier "pcVar8") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "free(pcVar8);" (call_expression "free(pcVar8)" (identifier "free") (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")"))) (; ";")) (if_statement "if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;" (if "if") (parenthesized_expression "((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03'))" (( "(") (binary_expression "(iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')" (parenthesized_expression "(iVar6 != 0)" (( "(") (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") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_00066f48;" (goto "goto") (statement_identifier "LAB_00066f48") (; ";"))) (if_statement "if (*(int *)(DAT_001d127c + 0x14) != 0) {\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }" (if "if") (parenthesized_expression "(*(int *)(DAT_001d127c + 0x14) != 0)" (( "(") (binary_expression "*(int *)(DAT_001d127c + 0x14) != 0" (pointer_expression "*(int *)(DAT_001d127c + 0x14)" (* "*") (cast_expression "(int *)(DAT_001d127c + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d127c + 0x14)" (( "(") (binary_expression "DAT_001d127c + 0x14" (identifier "DAT_001d127c") (+ "+") (number_literal "0x14")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);\n              }" ({ "{") (expression_statement "pbVar19 = pbVar19 + (*pbVar19 == 0x5f);" (assignment_expression "pbVar19 = pbVar19 + (*pbVar19 == 0x5f)" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (*pbVar19 == 0x5f)" (identifier "pbVar19") (+ "+") (parenthesized_expression "(*pbVar19 == 0x5f)" (( "(") (binary_expression "*pbVar19 == 0x5f" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (== "==") (number_literal "0x5f")) () ")")))) (; ";")) (} "}"))) (expression_statement "iVar6 = FUN_00062820(pbVar19);" (assignment_expression "iVar6 = FUN_00062820(pbVar19)" (identifier "iVar6") (= "=") (call_expression "FUN_00062820(pbVar19)" (identifier "FUN_00062820") (argument_list "(pbVar19)" (( "(") (identifier "pbVar19") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) goto LAB_00066f48;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00066f48;" (goto "goto") (statement_identifier "LAB_00066f48") (; ";"))) (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 "iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);" (assignment_expression "iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20)" (identifier "iVar6") (= "=") (call_expression "FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20)" (identifier "FUN_00058c90") (argument_list "(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20)" (( "(") (identifier "DAT_001d1218") (, ",") (identifier "pbVar19") (, ",") (number_literal "0") (, ",") (number_literal "0xffffffff") (, ",") (number_literal "0") (, ",") (identifier "local_20") () ")")))) (; ";")) (if_statement "if (local_20[0] != 0) goto LAB_00066f48;" (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")) () ")")) (goto_statement "goto LAB_00066f48;" (goto "goto") (statement_identifier "LAB_00066f48") (; ";"))) (expression_statement "piVar17 = local_48 + 1;" (assignment_expression "piVar17 = local_48 + 1" (identifier "piVar17") (= "=") (binary_expression "local_48 + 1" (identifier "local_48") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;" (assignment_expression "*(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1" (pointer_expression "*(byte *)(iVar6 + 0x17)" (* "*") (cast_expression "(byte *)(iVar6 + 0x17)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x17)" (( "(") (binary_expression "iVar6 + 0x17" (identifier "iVar6") (+ "+") (number_literal "0x17")) () ")")))) (= "=") (binary_expression "((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1" (parenthesized_expression "((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1)" (( "(") (binary_expression "(byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1" (call_expression "(byte)(*(uint *)(*local_48 + 0x10) >> 3)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*(uint *)(*local_48 + 0x10) >> 3)" (( "(") (binary_expression "*(uint *)(*local_48 + 0x10) >> 3" (pointer_expression "*(uint *)(*local_48 + 0x10)" (* "*") (cast_expression "(uint *)(*local_48 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_48 + 0x10)" (( "(") (binary_expression "*local_48 + 0x10" (pointer_expression "*local_48" (* "*") (identifier "local_48")) (+ "+") (number_literal "0x10")) () ")")))) (>> ">>") (number_literal "3")) () ")"))) (^ "^") (number_literal "1")) () ")")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "local_48 = piVar17;" (assignment_expression "local_48 = piVar17" (identifier "local_48") (= "=") (identifier "piVar17")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar13 != piVar17)" (( "(") (binary_expression "piVar13 != piVar17" (identifier "piVar13") (!= "!=") (identifier "piVar17")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00067678:\n          local_44 = *(int *)(local_44 + 0x9c);" (statement_identifier "LAB_00067678") (: ":") (expression_statement "local_44 = *(int *)(local_44 + 0x9c);" (assignment_expression "local_44 = *(int *)(local_44 + 0x9c)" (identifier "local_44") (= "=") (pointer_expression "*(int *)(local_44 + 0x9c)" (* "*") (cast_expression "(int *)(local_44 + 0x9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_44 + 0x9c)" (( "(") (binary_expression "local_44 + 0x9c" (identifier "local_44") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";"))) (if_statement "if (local_44 == 0) goto LAB_00066fbb;" (if "if") (parenthesized_expression "(local_44 == 0)" (( "(") (binary_expression "local_44 == 0" (identifier "local_44") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00066fbb;" (goto "goto") (statement_identifier "LAB_00066fbb") (; ";"))) (} "}"))) (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,local_44);" (call_expression "FUN_00034d20(uVar14,local_44)" (identifier "FUN_00034d20") (argument_list "(uVar14,local_44)" (( "(") (identifier "uVar14") (, ",") (identifier "local_44") () ")"))) (; ";")) (expression_statement "iVar6 = DAT_001d1218[0xb];" (assignment_expression "iVar6 = DAT_001d1218[0xb]" (identifier "iVar6") (= "=") (subscript_expression "DAT_001d1218[0xb]" (identifier "DAT_001d1218") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" (identifier "puVar24") (= "=") (identifier "DAT_001d1218")) (; ";")) (goto_statement "goto joined_r0x00067b8d;" (goto "goto") (statement_identifier "joined_r0x00067b8d") (; ";")) (} "}"))) (labeled_statement "LAB_00066fbb:\n      iVar6 = DAT_001d1218[0xb];" (statement_identifier "LAB_00066fbb") (: ":") (expression_statement "iVar6 = DAT_001d1218[0xb];" (assignment_expression "iVar6 = DAT_001d1218[0xb]" (identifier "iVar6") (= "=") (subscript_expression "DAT_001d1218[0xb]" (identifier "DAT_001d1218") ([ "[") (number_literal "0xb") (] "]"))) (; ";"))) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" (identifier "puVar24") (= "=") (identifier "DAT_001d1218")) (; ";")) (if_statement "if (iVar6 != 0) goto LAB_00066fd0;" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00066fd0;" (goto "goto") (statement_identifier "LAB_00066fd0") (; ";"))) (goto_statement "goto LAB_0006736e;" (goto "goto") (statement_identifier "LAB_0006736e") (; ";")) (} "}"))) (labeled_statement "LAB_00067375:\n    if ((bVar2 & 1) == 0) {\n      return;\n    }" (statement_identifier "LAB_00067375") (: ":") (if_statement "if ((bVar2 & 1) == 0) {\n      return;\n    }" (if "if") (parenthesized_expression "((bVar2 & 1) == 0)" (( "(") (binary_expression "(bVar2 & 1) == 0" (parenthesized_expression "(bVar2 & 1)" (( "(") (binary_expression "bVar2 & 1" (identifier "bVar2") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }\n    local_48[0xb] = iVar3;\n    DAT_001d1278 = xmalloc(iVar6);\n    DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);\n    puVar24 = DAT_001d1218;\n    memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);\n    iVar6 = puVar24[0xb];\n    DAT_001d1258 = 0;\n    DAT_001d125c = 0x10000;\n    DAT_001d126c = 0;\n    DAT_001d1268 = 0;\n    DAT_001d1264 = 0;\n    if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }\njoined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }\n  }" (else "else") (compound_statement "{\n    if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }\nLAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }\n    local_48[0xb] = iVar3;\n    DAT_001d1278 = xmalloc(iVar6);\n    DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);\n    puVar24 = DAT_001d1218;\n    memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);\n    iVar6 = puVar24[0xb];\n    DAT_001d1258 = 0;\n    DAT_001d125c = 0x10000;\n    DAT_001d126c = 0;\n    DAT_001d1268 = 0;\n    DAT_001d1264 = 0;\n    if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }\njoined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }\n  }" ({ "{") (if_statement "if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }" (if "if") (parenthesized_expression "((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0))" (( "(") (binary_expression "(DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)" (parenthesized_expression "(DAT_001d1214 != 0)" (( "(") (binary_expression "DAT_001d1214 != 0" (identifier "DAT_001d1214") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar6 = DAT_001d1218[0xb], iVar6 == 0)" (( "(") (comma_expression "iVar6 = DAT_001d1218[0xb], iVar6 == 0" (assignment_expression "iVar6 = DAT_001d1218[0xb]" (identifier "iVar6") (= "=") (subscript_expression "DAT_001d1218[0xb]" (identifier "DAT_001d1218") ([ "[") (number_literal "0xb") (] "]"))) (, ",") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\nLAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;\n      goto LAB_00066fbb;\n    }" ({ "{") (labeled_statement "LAB_00066fad:\n      if (DAT_001d1210 == 0) goto LAB_00066df0;" (statement_identifier "LAB_00066fad") (: ":") (if_statement "if (DAT_001d1210 == 0) goto LAB_00066df0;" (if "if") (parenthesized_expression "(DAT_001d1210 == 0)" (( "(") (binary_expression "DAT_001d1210 == 0" (identifier "DAT_001d1210") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00066df0;" (goto "goto") (statement_identifier "LAB_00066df0") (; ";")))) (goto_statement "goto LAB_00066fbb;" (goto "goto") (statement_identifier "LAB_00066fbb") (; ";")) (} "}"))) (labeled_statement "LAB_00066fd0:\n    if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }" (statement_identifier "LAB_00066fd0") (: ":") (if_statement "if (DAT_001d120c == 0) {\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }\n    else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }" (if "if") (parenthesized_expression "(DAT_001d120c == 0)" (( "(") (binary_expression "DAT_001d120c == 0" (identifier "DAT_001d120c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];\n      local_48 = DAT_001d1218;\n      if (DAT_001d1208 == 0) goto LAB_00067212;\nLAB_0006709d:\n      bVar26 = false;\n      bVar25 = sVar7 == 0;\n      if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }\nLAB_00067c38:\n      iVar6 = 0;\n      iVar3 = 0;\n    }" ({ "{") (labeled_statement "LAB_000671fd:\n      sVar7 = DAT_001d1218[0xb];" (statement_identifier "LAB_000671fd") (: ":") (expression_statement "sVar7 = DAT_001d1218[0xb];" (assignment_expression "sVar7 = DAT_001d1218[0xb]" (identifier "sVar7") (= "=") (subscript_expression "DAT_001d1218[0xb]" (identifier "DAT_001d1218") ([ "[") (number_literal "0xb") (] "]"))) (; ";"))) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" (identifier "local_48") (= "=") (identifier "DAT_001d1218")) (; ";")) (if_statement "if (DAT_001d1208 == 0) goto LAB_00067212;" (if "if") (parenthesized_expression "(DAT_001d1208 == 0)" (( "(") (binary_expression "DAT_001d1208 == 0" (identifier "DAT_001d1208") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00067212;" (goto "goto") (statement_identifier "LAB_00067212") (; ";"))) (labeled_statement "LAB_0006709d:\n      bVar26 = false;" (statement_identifier "LAB_0006709d") (: ":") (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" (identifier "bVar26") (= "=") (false "false")) (; ";"))) (expression_statement "bVar25 = sVar7 == 0;" (assignment_expression "bVar25 = sVar7 == 0" (identifier "bVar25") (= "=") (binary_expression "sVar7 == 0" (identifier "sVar7") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (0 < (int)sVar7) {\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }" (if "if") (parenthesized_expression "(0 < (int)sVar7)" (( "(") (binary_expression "0 < (int)sVar7" (number_literal "0") (< "<") (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7"))) () ")")) (compound_statement "{\n        local_40 = (char *)0x0;\n        local_44 = 0;\n        do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);\n        goto LAB_00067212;\n      }" ({ "{") (expression_statement "local_40 = (char *)0x0;" (assignment_expression "local_40 = (char *)0x0" (identifier "local_40") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        } while ((int)local_44 < (int)sVar7);" (do "do") (compound_statement "{\n          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);\n          iVar6 = 6;\n          pbVar20 = pbVar19;\n          pbVar23 = (byte *)0x1adaf4;\n          do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);\n          if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }\n          local_44 = local_44 + 1;\n          sVar7 = local_48[0xb];\n          local_40 = (char *)((int)local_40 + 0x1c);\n          bVar26 = local_44 < sVar7;\n          bVar25 = local_44 == sVar7;\n        }" ({ "{") (expression_statement "pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);" (assignment_expression "pbVar19 = *(byte **)(local_48[0xc] + (int)local_40)" (identifier "pbVar19") (= "=") (pointer_expression "*(byte **)(local_48[0xc] + (int)local_40)" (* "*") (cast_expression "(byte **)(local_48[0xc] + (int)local_40)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_48[0xc] + (int)local_40)" (( "(") (binary_expression "local_48[0xc] + (int)local_40" (subscript_expression "local_48[0xc]" (identifier "local_48") ([ "[") (number_literal "0xc") (] "]")) (+ "+") (cast_expression "(int)local_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_40"))) () ")"))))) (; ";")) (expression_statement "iVar6 = 6;" (assignment_expression "iVar6 = 6" (identifier "iVar6") (= "=") (number_literal "6")) (; ";")) (expression_statement "pbVar20 = pbVar19;" (assignment_expression "pbVar20 = pbVar19" (identifier "pbVar20") (= "=") (identifier "pbVar19")) (; ";")) (expression_statement "pbVar23 = (byte *)0x1adaf4;" (assignment_expression "pbVar23 = (byte *)0x1adaf4" (identifier "pbVar23") (= "=") (cast_expression "(byte *)0x1adaf4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1adaf4"))) (; ";")) (do_statement "do {\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;\n          } while (bVar25);" (do "do") (compound_statement "{\n            if (iVar6 == 0) break;\n            iVar6 = iVar6 + -1;\n            bVar26 = *pbVar20 < *pbVar23;\n            bVar25 = *pbVar20 == *pbVar23;\n            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;\n            pbVar23 = pbVar23 + (uint)bVar29 * -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 "bVar26 = *pbVar20 < *pbVar23;" (assignment_expression "bVar26 = *pbVar20 < *pbVar23" (identifier "bVar26") (= "=") (binary_expression "*pbVar20 < *pbVar23" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (< "<") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")))) (; ";")) (expression_statement "bVar25 = *pbVar20 == *pbVar23;" (assignment_expression "bVar25 = *pbVar20 == *pbVar23" (identifier "bVar25") (= "=") (binary_expression "*pbVar20 == *pbVar23" (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")) (== "==") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar29 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar29 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar29 * -2" (cast_expression "(uint)bVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1" (identifier "pbVar23") (= "=") (binary_expression "pbVar23 + (uint)bVar29 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar29 * -2" (identifier "pbVar23") (+ "+") (binary_expression "(uint)bVar29 * -2" (cast_expression "(uint)bVar29" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar29")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (; ";")) (if_statement "if (((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }" (if "if") (parenthesized_expression "(((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0))" (( "(") (binary_expression "((!bVar26 && !bVar25) != bVar26) &&\n             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)" (parenthesized_expression "((!bVar26 && !bVar25) != bVar26)" (( "(") (binary_expression "(!bVar26 && !bVar25) != bVar26" (parenthesized_expression "(!bVar26 && !bVar25)" (( "(") (binary_expression "!bVar26 && !bVar25" (unary_expression "!bVar26" (! "!") (identifier "bVar26")) (&& "&&") (unary_expression "!bVar25" (! "!") (identifier "bVar25"))) () ")")) (!= "!=") (identifier "bVar26")) () ")")) (&& "&&") (parenthesized_expression "(pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)" (( "(") (comma_expression "pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0" (assignment_expression "pcVar8 = strchr((char *)pbVar19,0x40)" (identifier "pcVar8") (= "=") (call_expression "strchr((char *)pbVar19,0x40)" (identifier "strchr") (argument_list "((char *)pbVar19,0x40)" (( "(") (cast_expression "(char *)pbVar19" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar19")) (, ",") (number_literal "0x40") () ")")))) (, ",") (binary_expression "pcVar8 != (char *)0x0" (identifier "pcVar8") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n            local_20[0] = 1;\n            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));\n            pcVar9 = strchr(pcVar8,0x40);\n            *pcVar9 = '\0';\n            iVar6 = FUN_00062820(pcVar8);\n            if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }\n            local_48 = DAT_001d1218;\n            if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }\n          }" ({ "{") (expression_statement "local_20[0] = 1;" (assignment_expression "local_20[0] = 1" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));" (assignment_expression "pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40))" (identifier "pcVar8") (= "=") (cast_expression "(char *)xstrdup(pbVar19 + (*pbVar19 == 0x40))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xstrdup(pbVar19 + (*pbVar19 == 0x40))" (identifier "xstrdup") (argument_list "(pbVar19 + (*pbVar19 == 0x40))" (( "(") (binary_expression "pbVar19 + (*pbVar19 == 0x40)" (identifier "pbVar19") (+ "+") (parenthesized_expression "(*pbVar19 == 0x40)" (( "(") (binary_expression "*pbVar19 == 0x40" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (== "==") (number_literal "0x40")) () ")"))) () ")"))))) (; ";")) (expression_statement "pcVar9 = strchr(pcVar8,0x40);" (assignment_expression "pcVar9 = strchr(pcVar8,0x40)" (identifier "pcVar9") (= "=") (call_expression "strchr(pcVar8,0x40)" (identifier "strchr") (argument_list "(pcVar8,0x40)" (( "(") (identifier "pcVar8") (, ",") (number_literal "0x40") () ")")))) (; ";")) (expression_statement "*pcVar9 = '\0';" (assignment_expression "*pcVar9 = '\0'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "iVar6 = FUN_00062820(pcVar8);" (assignment_expression "iVar6 = FUN_00062820(pcVar8)" (identifier "iVar6") (= "=") (call_expression "FUN_00062820(pcVar8)" (identifier "FUN_00062820") (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")")))) (; ";")) (if_statement "if (iVar6 != 0) {\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);\n            }" ({ "{") (expression_statement "FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20);" (call_expression "FUN_00058c90(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20)" (identifier "FUN_00058c90") (argument_list "(DAT_001d1218,pcVar8,\n                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,\n                           local_20)" (( "(") (identifier "DAT_001d1218") (, ",") (identifier "pcVar8") (, ",") (pointer_expression "*(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40)" (* "*") (cast_expression "(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d1218[0xc] + 4 + (int)local_40)" (( "(") (binary_expression "DAT_001d1218[0xc] + 4 + (int)local_40" (binary_expression "DAT_001d1218[0xc] + 4" (subscript_expression "DAT_001d1218[0xc]" (identifier "DAT_001d1218") ([ "[") (number_literal "0xc") (] "]")) (+ "+") (number_literal "4")) (+ "+") (cast_expression "(int)local_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_40"))) () ")")))) (, ",") (number_literal "0xffffffff") (, ",") (number_literal "0") (, ",") (identifier "local_20") () ")"))) (; ";")) (} "}"))) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" (identifier "local_48") (= "=") (identifier "DAT_001d1218")) (; ";")) (if_statement "if (local_20[0] != 0) {\n              free(pcVar8);\n              local_48 = DAT_001d1218;\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              free(pcVar8);\n              local_48 = DAT_001d1218;\n            }" ({ "{") (expression_statement "free(pcVar8);" (call_expression "free(pcVar8)" (identifier "free") (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")"))) (; ";")) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" (identifier "local_48") (= "=") (identifier "DAT_001d1218")) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_44 = local_44 + 1;" (assignment_expression "local_44 = local_44 + 1" (identifier "local_44") (= "=") (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "sVar7 = local_48[0xb];" (assignment_expression "sVar7 = local_48[0xb]" (identifier "sVar7") (= "=") (subscript_expression "local_48[0xb]" (identifier "local_48") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "local_40 = (char *)((int)local_40 + 0x1c);" (assignment_expression "local_40 = (char *)((int)local_40 + 0x1c)" (identifier "local_40") (= "=") (cast_expression "(char *)((int)local_40 + 0x1c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_40 + 0x1c)" (( "(") (binary_expression "(int)local_40 + 0x1c" (cast_expression "(int)local_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_40")) (+ "+") (number_literal "0x1c")) () ")")))) (; ";")) (expression_statement "bVar26 = local_44 < sVar7;" (assignment_expression "bVar26 = local_44 < sVar7" (identifier "bVar26") (= "=") (binary_expression "local_44 < sVar7" (identifier "local_44") (< "<") (identifier "sVar7"))) (; ";")) (expression_statement "bVar25 = local_44 == sVar7;" (assignment_expression "bVar25 = local_44 == sVar7" (identifier "bVar25") (= "=") (binary_expression "local_44 == sVar7" (identifier "local_44") (== "==") (identifier "sVar7"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)local_44 < (int)sVar7)" (( "(") (binary_expression "(int)local_44 < (int)sVar7" (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44")) (< "<") (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7"))) () ")")) (; ";")) (goto_statement "goto LAB_00067212;" (goto "goto") (statement_identifier "LAB_00067212") (; ";")) (} "}"))) (labeled_statement "LAB_00067c38:\n      iVar6 = 0;" (statement_identifier "LAB_00067c38") (: ":") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";"))) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }" (else "else") (compound_statement "{\nLAB_00066fde:\n      bVar26 = false;\n      iVar3 = 0;\n      local_48 = DAT_001d1218;\n      if (iVar6 < 1) goto LAB_000671fd;\n      do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);\n      if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }\n      if (DAT_001d1208 != 0) goto LAB_0006709d;\nLAB_00067212:\n      piVar13 = local_48;\n      puVar24 = (undefined4 *)local_48[0xc];\n      if ((int)sVar7 < 1) goto LAB_00067c38;\n      local_48 = (int *)0x0;\n      iVar3 = 0;\n      puVar11 = puVar24;\n      do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);\n      iVar6 = iVar3 * 8;\n      local_48 = piVar13;\n    }" ({ "{") (labeled_statement "LAB_00066fde:\n      bVar26 = false;" (statement_identifier "LAB_00066fde") (: ":") (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" (identifier "bVar26") (= "=") (false "false")) (; ";"))) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" (identifier "local_48") (= "=") (identifier "DAT_001d1218")) (; ";")) (if_statement "if (iVar6 < 1) goto LAB_000671fd;" (if "if") (parenthesized_expression "(iVar6 < 1)" (( "(") (binary_expression "iVar6 < 1" (identifier "iVar6") (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_000671fd;" (goto "goto") (statement_identifier "LAB_000671fd") (; ";"))) (do_statement "do {\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      } while (iVar3 < (int)sVar7);" (do "do") (compound_statement "{\n        iVar6 = iVar3 * 0x1c;\n        pcVar8 = *(char **)(local_48[0xc] + iVar6);\n        cVar22 = *pcVar8;\n        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }\n        sVar7 = local_48[0xb];\n        iVar3 = iVar3 + 1;\n      }" ({ "{") (expression_statement "iVar6 = iVar3 * 0x1c;" (assignment_expression "iVar6 = iVar3 * 0x1c" (identifier "iVar6") (= "=") (binary_expression "iVar3 * 0x1c" (identifier "iVar3") (* "*") (number_literal "0x1c"))) (; ";")) (expression_statement "pcVar8 = *(char **)(local_48[0xc] + iVar6);" (assignment_expression "pcVar8 = *(char **)(local_48[0xc] + iVar6)" (identifier "pcVar8") (= "=") (pointer_expression "*(char **)(local_48[0xc] + iVar6)" (* "*") (cast_expression "(char **)(local_48[0xc] + iVar6)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_48[0xc] + iVar6)" (( "(") (binary_expression "local_48[0xc] + iVar6" (subscript_expression "local_48[0xc]" (identifier "local_48") ([ "[") (number_literal "0xc") (] "]")) (+ "+") (identifier "iVar6")) () ")"))))) (; ";")) (expression_statement "cVar22 = *pcVar8;" (assignment_expression "cVar22 = *pcVar8" (identifier "cVar22") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (if_statement "if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }" (if "if") (parenthesized_expression "((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0))" (( "(") (binary_expression "(cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)" (parenthesized_expression "(cVar22 != '?')" (( "(") (binary_expression "cVar22 != '?'" (identifier "cVar22") (!= "!=") (char_literal "'?'" (' "'") (character "?") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)" (( "(") (comma_expression "pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0" (assignment_expression "pcVar9 = strchr(pcVar8,0x40)" (identifier "pcVar9") (= "=") (call_expression "strchr(pcVar8,0x40)" (identifier "strchr") (argument_list "(pcVar8,0x40)" (( "(") (identifier "pcVar8") (, ",") (number_literal "0x40") () ")")))) (, ",") (binary_expression "pcVar9 != (char *)0x0" (identifier "pcVar9") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));\n          pcVar9 = strrchr(pcVar8,0x40);\n          if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }\n          local_48 = DAT_001d1218;\n          bVar26 = true;\n          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;\n        }" ({ "{") (expression_statement "pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));" (assignment_expression "pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'))" (identifier "pcVar8") (= "=") (cast_expression "(char *)xstrdup(pcVar8 + (cVar22 == '@'))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xstrdup(pcVar8 + (cVar22 == '@'))" (identifier "xstrdup") (argument_list "(pcVar8 + (cVar22 == '@'))" (( "(") (binary_expression "pcVar8 + (cVar22 == '@')" (identifier "pcVar8") (+ "+") (parenthesized_expression "(cVar22 == '@')" (( "(") (binary_expression "cVar22 == '@'" (identifier "cVar22") (== "==") (char_literal "'@'" (' "'") (character "@") (' "'"))) () ")"))) () ")"))))) (; ";")) (expression_statement "pcVar9 = strrchr(pcVar8,0x40);" (assignment_expression "pcVar9 = strrchr(pcVar8,0x40)" (identifier "pcVar9") (= "=") (call_expression "strrchr(pcVar8,0x40)" (identifier "strrchr") (argument_list "(pcVar8,0x40)" (( "(") (identifier "pcVar8") (, ",") (number_literal "0x40") () ")")))) (; ";")) (if_statement "if (pcVar9 == (char *)0x0) {\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }\n          else {\n            *pcVar9 = '\0';\n          }" (if "if") (parenthesized_expression "(pcVar9 == (char *)0x0)" (( "(") (binary_expression "pcVar9 == (char *)0x0" (identifier "pcVar9") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);\n            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);\n            FUN_00034d20(uVar16,uVar14);\n          }" ({ "{") (expression_statement "uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);" (assignment_expression "uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6)" (identifier "uVar14") (= "=") (pointer_expression "*(undefined4 *)(DAT_001d1218[0xc] + iVar6)" (* "*") (cast_expression "(undefined4 *)(DAT_001d1218[0xc] + iVar6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d1218[0xc] + iVar6)" (( "(") (binary_expression "DAT_001d1218[0xc] + iVar6" (subscript_expression "DAT_001d1218[0xc]" (identifier "DAT_001d1218") ([ "[") (number_literal "0xc") (] "]")) (+ "+") (identifier "iVar6")) () ")"))))) (; ";")) (expression_statement "uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);" (assignment_expression "uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5)" (identifier "uVar16") (= "=") (call_expression "dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5)" (identifier "dcgettext") (argument_list "(0,"%X%P: cannot export %s: invalid export name\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P: cannot export %s: invalid export name\n"" (" """) (string_content "%X%P: cannot export %s: invalid export name") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar16,uVar14);" (call_expression "FUN_00034d20(uVar16,uVar14)" (identifier "FUN_00034d20") (argument_list "(uVar16,uVar14)" (( "(") (identifier "uVar16") (, ",") (identifier "uVar14") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *pcVar9 = '\0';\n          }" (else "else") (compound_statement "{\n            *pcVar9 = '\0';\n          }" ({ "{") (expression_statement "*pcVar9 = '\0';" (assignment_expression "*pcVar9 = '\0'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")))) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" (identifier "local_48") (= "=") (identifier "DAT_001d1218")) (; ";")) (expression_statement "bVar26 = true;" (assignment_expression "bVar26 = true" (identifier "bVar26") (= "=") (true "true")) (; ";")) (expression_statement "*(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;" (assignment_expression "*(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8" (pointer_expression "*(char **)(DAT_001d1218[0xc] + iVar6)" (* "*") (cast_expression "(char **)(DAT_001d1218[0xc] + iVar6)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_001d1218[0xc] + iVar6)" (( "(") (binary_expression "DAT_001d1218[0xc] + iVar6" (subscript_expression "DAT_001d1218[0xc]" (identifier "DAT_001d1218") ([ "[") (number_literal "0xc") (] "]")) (+ "+") (identifier "iVar6")) () ")")))) (= "=") (identifier "pcVar8")) (; ";")) (} "}"))) (expression_statement "sVar7 = local_48[0xb];" (assignment_expression "sVar7 = local_48[0xb]" (identifier "sVar7") (= "=") (subscript_expression "local_48[0xb]" (identifier "local_48") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 < (int)sVar7)" (( "(") (binary_expression "iVar3 < (int)sVar7" (identifier "iVar3") (< "<") (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7"))) () ")")) (; ";")) (if_statement "if (bVar26) {\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }" (if "if") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (compound_statement "{\n        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);\n        local_48 = DAT_001d1218;\n        sVar7 = DAT_001d1218[0xb];\n      }" ({ "{") (expression_statement "qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);" (call_expression "qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720)" (identifier "qsort") (argument_list "((void *)local_48[0xc],sVar7,0x1c,FUN_00061720)" (( "(") (cast_expression "(void *)local_48[0xc]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_48[0xc]" (identifier "local_48") ([ "[") (number_literal "0xc") (] "]"))) (, ",") (identifier "sVar7") (, ",") (number_literal "0x1c") (, ",") (identifier "FUN_00061720") () ")"))) (; ";")) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" (identifier "local_48") (= "=") (identifier "DAT_001d1218")) (; ";")) (expression_statement "sVar7 = DAT_001d1218[0xb];" (assignment_expression "sVar7 = DAT_001d1218[0xb]" (identifier "sVar7") (= "=") (subscript_expression "DAT_001d1218[0xb]" (identifier "DAT_001d1218") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (} "}"))) (if_statement "if (DAT_001d1208 != 0) goto LAB_0006709d;" (if "if") (parenthesized_expression "(DAT_001d1208 != 0)" (( "(") (binary_expression "DAT_001d1208 != 0" (identifier "DAT_001d1208") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0006709d;" (goto "goto") (statement_identifier "LAB_0006709d") (; ";"))) (labeled_statement "LAB_00067212:\n      piVar13 = local_48;" (statement_identifier "LAB_00067212") (: ":") (expression_statement "piVar13 = local_48;" (assignment_expression "piVar13 = local_48" (identifier "piVar13") (= "=") (identifier "local_48")) (; ";"))) (expression_statement "puVar24 = (undefined4 *)local_48[0xc];" (assignment_expression "puVar24 = (undefined4 *)local_48[0xc]" (identifier "puVar24") (= "=") (cast_expression "(undefined4 *)local_48[0xc]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_48[0xc]" (identifier "local_48") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (if_statement "if ((int)sVar7 < 1) goto LAB_00067c38;" (if "if") (parenthesized_expression "((int)sVar7 < 1)" (( "(") (binary_expression "(int)sVar7 < 1" (cast_expression "(int)sVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar7")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_00067c38;" (goto "goto") (statement_identifier "LAB_00067c38") (; ";"))) (expression_statement "local_48 = (int *)0x0;" (assignment_expression "local_48 = (int *)0x0" (identifier "local_48") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar11 = puVar24;" (assignment_expression "puVar11 = puVar24" (identifier "puVar11") (= "=") (identifier "puVar24")) (; ";")) (do_statement "do {\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      } while ((int)local_48 < piVar13[0xb]);" (do "do") (compound_statement "{\n        if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }\n        local_48 = (int *)((int)local_48 + 1);\n        puVar11 = puVar11 + 7;\n      }" ({ "{") (if_statement "if (local_48 == (int *)0x0) {\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }\n        else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }" (if "if") (parenthesized_expression "(local_48 == (int *)0x0)" (( "(") (binary_expression "local_48 == (int *)0x0" (identifier "local_48") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }\n          iVar3 = iVar3 + 1;\n        }" ({ "{") (labeled_statement "LAB_00067327:\n          if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }" (statement_identifier "LAB_00067327") (: ":") (if_statement "if ((int *)iVar3 != local_48) {\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }" (if "if") (parenthesized_expression "((int *)iVar3 != local_48)" (( "(") (binary_expression "(int *)iVar3 != local_48" (cast_expression "(int *)iVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "iVar3")) (!= "!=") (identifier "local_48")) () ")")) (compound_statement "{\n            puVar10 = puVar24 + iVar3 * 7;\n            *puVar10 = *puVar11;\n            puVar10[1] = puVar11[1];\n            puVar10[2] = puVar11[2];\n            puVar10[3] = puVar11[3];\n            puVar10[4] = puVar11[4];\n            puVar10[5] = puVar11[5];\n            puVar10[6] = puVar11[6];\n          }" ({ "{") (expression_statement "puVar10 = puVar24 + iVar3 * 7;" (assignment_expression "puVar10 = puVar24 + iVar3 * 7" (identifier "puVar10") (= "=") (binary_expression "puVar24 + iVar3 * 7" (identifier "puVar24") (+ "+") (binary_expression "iVar3 * 7" (identifier "iVar3") (* "*") (number_literal "7")))) (; ";")) (expression_statement "*puVar10 = *puVar11;" (assignment_expression "*puVar10 = *puVar11" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (pointer_expression "*puVar11" (* "*") (identifier "puVar11"))) (; ";")) (expression_statement "puVar10[1] = puVar11[1];" (assignment_expression "puVar10[1] = puVar11[1]" (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar10[2] = puVar11[2];" (assignment_expression "puVar10[2] = puVar11[2]" (subscript_expression "puVar10[2]" (identifier "puVar10") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar11[2]" (identifier "puVar11") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar10[3] = puVar11[3];" (assignment_expression "puVar10[3] = puVar11[3]" (subscript_expression "puVar10[3]" (identifier "puVar10") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar11[3]" (identifier "puVar11") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar10[4] = puVar11[4];" (assignment_expression "puVar10[4] = puVar11[4]" (subscript_expression "puVar10[4]" (identifier "puVar10") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "puVar11[4]" (identifier "puVar11") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar10[5] = puVar11[5];" (assignment_expression "puVar10[5] = puVar11[5]" (subscript_expression "puVar10[5]" (identifier "puVar10") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "puVar11[5]" (identifier "puVar11") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar10[6] = puVar11[6];" (assignment_expression "puVar10[6] = puVar11[6]" (subscript_expression "puVar10[6]" (identifier "puVar10") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "puVar11[6]" (identifier "puVar11") ([ "[") (number_literal "6") (] "]"))) (; ";")) (} "}")))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }" (else "else") (compound_statement "{\n          local_40 = (char *)*puVar11;\n          iVar6 = strcmp(local_40,(char *)puVar11[-7]);\n          if (iVar6 != 0) goto LAB_00067327;\n          puVar10 = puVar24 + iVar3 * 7 + -7;\n          iVar6 = puVar10[3];\n          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }\n          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);\n          *(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);\n          *(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);\n          *(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);\n          if (local_40 != (char *)0x0) {\n            free(local_40);\n          }\n          if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }\n          piVar13 = DAT_001d1218;\n          if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }\n        }" ({ "{") (expression_statement "local_40 = (char *)*puVar11;" (assignment_expression "local_40 = (char *)*puVar11" (identifier "local_40") (= "=") (cast_expression "(char *)*puVar11" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar11" (* "*") (identifier "puVar11")))) (; ";")) (expression_statement "iVar6 = strcmp(local_40,(char *)puVar11[-7]);" (assignment_expression "iVar6 = strcmp(local_40,(char *)puVar11[-7])" (identifier "iVar6") (= "=") (call_expression "strcmp(local_40,(char *)puVar11[-7])" (identifier "strcmp") (argument_list "(local_40,(char *)puVar11[-7])" (( "(") (identifier "local_40") (, ",") (cast_expression "(char *)puVar11[-7]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar11[-7]" (identifier "puVar11") ([ "[") (number_literal "-7") (] "]"))) () ")")))) (; ";")) (if_statement "if (iVar6 != 0) goto LAB_00067327;" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00067327;" (goto "goto") (statement_identifier "LAB_00067327") (; ";"))) (expression_statement "puVar10 = puVar24 + iVar3 * 7 + -7;" (assignment_expression "puVar10 = puVar24 + iVar3 * 7 + -7" (identifier "puVar10") (= "=") (binary_expression "puVar24 + iVar3 * 7 + -7" (binary_expression "puVar24 + iVar3 * 7" (identifier "puVar24") (+ "+") (binary_expression "iVar3 * 7" (identifier "iVar3") (* "*") (number_literal "7"))) (+ "+") (number_literal "-7"))) (; ";")) (expression_statement "iVar6 = puVar10[3];" (assignment_expression "iVar6 = puVar10[3]" (identifier "iVar6") (= "=") (subscript_expression "puVar10[3]" (identifier "puVar10") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }\n          else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }" (if "if") (parenthesized_expression "(((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18))" (( "(") (binary_expression "((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)" (parenthesized_expression "((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1))" (( "(") (binary_expression "(iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)" (parenthesized_expression "(iVar6 == -1)" (( "(") (binary_expression "iVar6 == -1" (identifier "iVar6") (== "==") (number_literal "-1")) () ")")) (|| "||") (parenthesized_expression "(iVar18 = puVar11[3], iVar18 == -1)" (( "(") (comma_expression "iVar18 = puVar11[3], iVar18 == -1" (assignment_expression "iVar18 = puVar11[3]" (identifier "iVar18") (= "=") (subscript_expression "puVar11[3]" (identifier "puVar11") ([ "[") (number_literal "3") (] "]"))) (, ",") (binary_expression "iVar18 == -1" (identifier "iVar18") (== "==") (number_literal "-1"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar6 == iVar18)" (( "(") (binary_expression "iVar6 == iVar18" (identifier "iVar6") (== "==") (identifier "iVar18")) () ")"))) () ")")) (compound_statement "{\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }\nLAB_00067748:\n            iVar18 = puVar11[3];\n            if (iVar18 != -1) goto LAB_000672a7;\n          }" ({ "{") (if_statement "if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }" (if "if") (parenthesized_expression "(DAT_001d1204 != 0)" (( "(") (binary_expression "DAT_001d1204 != 0" (identifier "DAT_001d1204") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);\n              FUN_00034d20(uVar16,uVar14);\n              local_40 = (char *)*puVar11;\n            }" ({ "{") (expression_statement "uVar14 = *puVar10;" (assignment_expression "uVar14 = *puVar10" (identifier "uVar14") (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);" (assignment_expression "uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5)" (identifier "uVar16") (= "=") (call_expression "dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5)" (identifier "dcgettext") (argument_list "(0,"%P: warning, duplicate EXPORT: %s\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%P: warning, duplicate EXPORT: %s\n"" (" """) (string_content "%P: warning, duplicate EXPORT: %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar16,uVar14);" (call_expression "FUN_00034d20(uVar16,uVar14)" (identifier "FUN_00034d20") (argument_list "(uVar16,uVar14)" (( "(") (identifier "uVar16") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "local_40 = (char *)*puVar11;" (assignment_expression "local_40 = (char *)*puVar11" (identifier "local_40") (= "=") (cast_expression "(char *)*puVar11" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar11" (* "*") (identifier "puVar11")))) (; ";")) (} "}"))) (labeled_statement "LAB_00067748:\n            iVar18 = puVar11[3];" (statement_identifier "LAB_00067748") (: ":") (expression_statement "iVar18 = puVar11[3];" (assignment_expression "iVar18 = puVar11[3]" (identifier "iVar18") (= "=") (subscript_expression "puVar11[3]" (identifier "puVar11") ([ "[") (number_literal "3") (] "]"))) (; ";"))) (if_statement "if (iVar18 != -1) goto LAB_000672a7;" (if "if") (parenthesized_expression "(iVar18 != -1)" (( "(") (binary_expression "iVar18 != -1" (identifier "iVar18") (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_000672a7;" (goto "goto") (statement_identifier "LAB_000672a7") (; ";"))) (} "}")) (else_clause "else {\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }" (else "else") (compound_statement "{\n            if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }\nLAB_000672a7:\n            puVar10[3] = iVar18;\n          }" ({ "{") (if_statement "if (DAT_001d1204 != 0) {\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }" (if "if") (parenthesized_expression "(DAT_001d1204 != 0)" (( "(") (binary_expression "DAT_001d1204 != 0" (identifier "DAT_001d1204") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar14 = *puVar10;\n              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;\n              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);\n              local_40 = (char *)*puVar11;\n              goto LAB_00067748;\n            }" ({ "{") (expression_statement "uVar14 = *puVar10;" (assignment_expression "uVar14 = *puVar10" (identifier "uVar14") (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)\n              ;" (assignment_expression "uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)" (identifier "uVar16") (= "=") (call_expression "dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)" (identifier "dcgettext") (argument_list "(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"" (" """) (string_content "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar16,uVar14,iVar6,iVar18);" (call_expression "FUN_00034d20(uVar16,uVar14,iVar6,iVar18)" (identifier "FUN_00034d20") (argument_list "(uVar16,uVar14,iVar6,iVar18)" (( "(") (identifier "uVar16") (, ",") (identifier "uVar14") (, ",") (identifier "iVar6") (, ",") (identifier "iVar18") () ")"))) (; ";")) (expression_statement "local_40 = (char *)*puVar11;" (assignment_expression "local_40 = (char *)*puVar11" (identifier "local_40") (= "=") (cast_expression "(char *)*puVar11" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar11" (* "*") (identifier "puVar11")))) (; ";")) (goto_statement "goto LAB_00067748;" (goto "goto") (statement_identifier "LAB_00067748") (; ";")) (} "}"))) (labeled_statement "LAB_000672a7:\n            puVar10[3] = iVar18;" (statement_identifier "LAB_000672a7") (: ":") (expression_statement "puVar10[3] = iVar18;" (assignment_expression "puVar10[3] = iVar18" (subscript_expression "puVar10[3]" (identifier "puVar10") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar18")) (; ";"))) (} "}")))) (expression_statement "*(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);" (assignment_expression "*(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5)" (pointer_expression "*(byte *)(puVar10 + 5)" (* "*") (cast_expression "(byte *)(puVar10 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 5)" (( "(") (binary_expression "puVar10 + 5" (identifier "puVar10") (+ "+") (number_literal "5")) () ")")))) (= "=") (binary_expression "*(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5)" (pointer_expression "*(byte *)(puVar10 + 5)" (* "*") (cast_expression "(byte *)(puVar10 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 5)" (( "(") (binary_expression "puVar10 + 5" (identifier "puVar10") (+ "+") (number_literal "5")) () ")")))) (| "|") (pointer_expression "*(byte *)(puVar11 + 5)" (* "*") (cast_expression "(byte *)(puVar11 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 5)" (( "(") (binary_expression "puVar11 + 5" (identifier "puVar11") (+ "+") (number_literal "5")) () ")")))))) (; ";")) (expression_statement "*(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);" (assignment_expression "*(byte *)((int)puVar10 + 0x15) =\n               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15)" (pointer_expression "*(byte *)((int)puVar10 + 0x15)" (* "*") (cast_expression "(byte *)((int)puVar10 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar10 + 0x15)" (( "(") (binary_expression "(int)puVar10 + 0x15" (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10")) (+ "+") (number_literal "0x15")) () ")")))) (= "=") (binary_expression "*(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15)" (pointer_expression "*(byte *)((int)puVar10 + 0x15)" (* "*") (cast_expression "(byte *)((int)puVar10 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar10 + 0x15)" (( "(") (binary_expression "(int)puVar10 + 0x15" (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10")) (+ "+") (number_literal "0x15")) () ")")))) (| "|") (pointer_expression "*(byte *)((int)puVar11 + 0x15)" (* "*") (cast_expression "(byte *)((int)puVar11 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 0x15)" (( "(") (binary_expression "(int)puVar11 + 0x15" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "0x15")) () ")")))))) (; ";")) (expression_statement "*(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);" (assignment_expression "*(byte *)((int)puVar10 + 0x16) =\n               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16)" (pointer_expression "*(byte *)((int)puVar10 + 0x16)" (* "*") (cast_expression "(byte *)((int)puVar10 + 0x16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar10 + 0x16)" (( "(") (binary_expression "(int)puVar10 + 0x16" (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10")) (+ "+") (number_literal "0x16")) () ")")))) (= "=") (binary_expression "*(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16)" (pointer_expression "*(byte *)((int)puVar10 + 0x16)" (* "*") (cast_expression "(byte *)((int)puVar10 + 0x16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar10 + 0x16)" (( "(") (binary_expression "(int)puVar10 + 0x16" (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10")) (+ "+") (number_literal "0x16")) () ")")))) (| "|") (pointer_expression "*(byte *)((int)puVar11 + 0x16)" (* "*") (cast_expression "(byte *)((int)puVar11 + 0x16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 0x16)" (( "(") (binary_expression "(int)puVar11 + 0x16" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "0x16")) () ")")))))) (; ";")) (expression_statement "*(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);" (assignment_expression "*(byte *)((int)puVar10 + 0x17) =\n               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17)" (pointer_expression "*(byte *)((int)puVar10 + 0x17)" (* "*") (cast_expression "(byte *)((int)puVar10 + 0x17)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar10 + 0x17)" (( "(") (binary_expression "(int)puVar10 + 0x17" (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10")) (+ "+") (number_literal "0x17")) () ")")))) (= "=") (binary_expression "*(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17)" (pointer_expression "*(byte *)((int)puVar10 + 0x17)" (* "*") (cast_expression "(byte *)((int)puVar10 + 0x17)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar10 + 0x17)" (( "(") (binary_expression "(int)puVar10 + 0x17" (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10")) (+ "+") (number_literal "0x17")) () ")")))) (| "|") (pointer_expression "*(byte *)((int)puVar11 + 0x17)" (* "*") (cast_expression "(byte *)((int)puVar11 + 0x17)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + 0x17)" (( "(") (binary_expression "(int)puVar11 + 0x17" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (number_literal "0x17")) () ")")))))) (; ";")) (if_statement "if (local_40 != (char *)0x0) {\n            free(local_40);\n          }" (if "if") (parenthesized_expression "(local_40 != (char *)0x0)" (( "(") (binary_expression "local_40 != (char *)0x0" (identifier "local_40") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            free(local_40);\n          }" ({ "{") (expression_statement "free(local_40);" (call_expression "free(local_40)" (identifier "free") (argument_list "(local_40)" (( "(") (identifier "local_40") () ")"))) (; ";")) (} "}"))) (if_statement "if ((void *)puVar11[1] != (void *)0x0) {\n            free((void *)puVar11[1]);\n          }" (if "if") (parenthesized_expression "((void *)puVar11[1] != (void *)0x0)" (( "(") (binary_expression "(void *)puVar11[1] != (void *)0x0" (cast_expression "(void *)puVar11[1]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            free((void *)puVar11[1]);\n          }" ({ "{") (expression_statement "free((void *)puVar11[1]);" (call_expression "free((void *)puVar11[1])" (identifier "free") (argument_list "((void *)puVar11[1])" (( "(") (cast_expression "(void *)puVar11[1]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]"))) () ")"))) (; ";")) (} "}"))) (expression_statement "piVar13 = DAT_001d1218;" (assignment_expression "piVar13 = DAT_001d1218" (identifier "piVar13") (= "=") (identifier "DAT_001d1218")) (; ";")) (if_statement "if ((void *)puVar11[2] != (void *)0x0) {\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }" (if "if") (parenthesized_expression "((void *)puVar11[2] != (void *)0x0)" (( "(") (binary_expression "(void *)puVar11[2] != (void *)0x0" (cast_expression "(void *)puVar11[2]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar11[2]" (identifier "puVar11") ([ "[") (number_literal "2") (] "]"))) (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            free((void *)puVar11[2]);\n            piVar13 = DAT_001d1218;\n          }" ({ "{") (expression_statement "free((void *)puVar11[2]);" (call_expression "free((void *)puVar11[2])" (identifier "free") (argument_list "((void *)puVar11[2])" (( "(") (cast_expression "(void *)puVar11[2]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar11[2]" (identifier "puVar11") ([ "[") (number_literal "2") (] "]"))) () ")"))) (; ";")) (expression_statement "piVar13 = DAT_001d1218;" (assignment_expression "piVar13 = DAT_001d1218" (identifier "piVar13") (= "=") (identifier "DAT_001d1218")) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_48 = (int *)((int)local_48 + 1);" (assignment_expression "local_48 = (int *)((int)local_48 + 1)" (identifier "local_48") (= "=") (cast_expression "(int *)((int)local_48 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_48 + 1)" (( "(") (binary_expression "(int)local_48 + 1" (cast_expression "(int)local_48" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_48")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar11 = puVar11 + 7;" (assignment_expression "puVar11 = puVar11 + 7" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 7" (identifier "puVar11") (+ "+") (number_literal "7"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)local_48 < piVar13[0xb])" (( "(") (binary_expression "(int)local_48 < piVar13[0xb]" (cast_expression "(int)local_48" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_48")) (< "<") (subscript_expression "piVar13[0xb]" (identifier "piVar13") ([ "[") (number_literal "0xb") (] "]"))) () ")")) (; ";")) (expression_statement "iVar6 = iVar3 * 8;" (assignment_expression "iVar6 = iVar3 * 8" (identifier "iVar6") (= "=") (binary_expression "iVar3 * 8" (identifier "iVar3") (* "*") (number_literal "8"))) (; ";")) (expression_statement "local_48 = piVar13;" (assignment_expression "local_48 = piVar13" (identifier "local_48") (= "=") (identifier "piVar13")) (; ";")) (} "}"))))) (expression_statement "local_48[0xb] = iVar3;" (assignment_expression "local_48[0xb] = iVar3" (subscript_expression "local_48[0xb]" (identifier "local_48") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "DAT_001d1278 = xmalloc(iVar6);" (assignment_expression "DAT_001d1278 = xmalloc(iVar6)" (identifier "DAT_001d1278") (= "=") (call_expression "xmalloc(iVar6)" (identifier "xmalloc") (argument_list "(iVar6)" (( "(") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);" (assignment_expression "DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2)" (identifier "DAT_001d1274") (= "=") (cast_expression "(void *)xmalloc(DAT_001d1218[0xb] << 2)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(DAT_001d1218[0xb] << 2)" (identifier "xmalloc") (argument_list "(DAT_001d1218[0xb] << 2)" (( "(") (binary_expression "DAT_001d1218[0xb] << 2" (subscript_expression "DAT_001d1218[0xb]" (identifier "DAT_001d1218") ([ "[") (number_literal "0xb") (] "]")) (<< "<<") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" (identifier "puVar24") (= "=") (identifier "DAT_001d1218")) (; ";")) (expression_statement "memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);" (call_expression "memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4)" (identifier "memset") (argument_list "(DAT_001d1274,0,DAT_001d1218[0xb] * 4)" (( "(") (identifier "DAT_001d1274") (, ",") (number_literal "0") (, ",") (binary_expression "DAT_001d1218[0xb] * 4" (subscript_expression "DAT_001d1218[0xb]" (identifier "DAT_001d1218") ([ "[") (number_literal "0xb") (] "]")) (* "*") (number_literal "4")) () ")"))) (; ";")) (expression_statement "iVar6 = puVar24[0xb];" (assignment_expression "iVar6 = puVar24[0xb]" (identifier "iVar6") (= "=") (subscript_expression "puVar24[0xb]" (identifier "puVar24") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "DAT_001d1258 = 0;" (assignment_expression "DAT_001d1258 = 0" (identifier "DAT_001d1258") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_001d125c = 0x10000;" (assignment_expression "DAT_001d125c = 0x10000" (identifier "DAT_001d125c") (= "=") (number_literal "0x10000")) (; ";")) (expression_statement "DAT_001d126c = 0;" (assignment_expression "DAT_001d126c = 0" (identifier "DAT_001d126c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_001d1268 = 0;" (assignment_expression "DAT_001d1268 = 0" (identifier "DAT_001d1268") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_001d1264 = 0;" (assignment_expression "DAT_001d1264 = 0" (identifier "DAT_001d1264") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < iVar6) {\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }" (if "if") (parenthesized_expression "(0 < iVar6)" (( "(") (binary_expression "0 < iVar6" (number_literal "0") (< "<") (identifier "iVar6")) () ")")) (compound_statement "{\n      local_48 = (int *)0x0;\n      do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);\n    }" ({ "{") (expression_statement "local_48 = (int *)0x0;" (assignment_expression "local_48 = (int *)0x0" (identifier "local_48") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      } while ((int)local_48 < iVar6);" (do "do") (compound_statement "{\n        iVar6 = (int)local_48 * 0x1c;\n        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);\n        FUN_00028f70(pcVar8);\n        sVar7 = strlen(pcVar8);\n        pcVar9 = (char *)xmalloc(sVar7 + 2);\n        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }\n        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);\n        puVar24 = DAT_001d1218;\n        if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }\n        free(pcVar9);\n        local_48 = (int *)((int)local_48 + 1);\n        iVar6 = puVar24[0xb];\n      }" ({ "{") (expression_statement "iVar6 = (int)local_48 * 0x1c;" (assignment_expression "iVar6 = (int)local_48 * 0x1c" (identifier "iVar6") (= "=") (binary_expression "(int)local_48 * 0x1c" (cast_expression "(int)local_48" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_48")) (* "*") (number_literal "0x1c"))) (; ";")) (expression_statement "pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);" (assignment_expression "pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6)" (identifier "pcVar8") (= "=") (pointer_expression "*(char **)(puVar24[0xc] + 4 + iVar6)" (* "*") (cast_expression "(char **)(puVar24[0xc] + 4 + iVar6)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24[0xc] + 4 + iVar6)" (( "(") (binary_expression "puVar24[0xc] + 4 + iVar6" (binary_expression "puVar24[0xc] + 4" (subscript_expression "puVar24[0xc]" (identifier "puVar24") ([ "[") (number_literal "0xc") (] "]")) (+ "+") (number_literal "4")) (+ "+") (identifier "iVar6")) () ")"))))) (; ";")) (expression_statement "FUN_00028f70(pcVar8);" (call_expression "FUN_00028f70(pcVar8)" (identifier "FUN_00028f70") (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")"))) (; ";")) (expression_statement "sVar7 = strlen(pcVar8);" (assignment_expression "sVar7 = strlen(pcVar8)" (identifier "sVar7") (= "=") (call_expression "strlen(pcVar8)" (identifier "strlen") (argument_list "(pcVar8)" (( "(") (identifier "pcVar8") () ")")))) (; ";")) (expression_statement "pcVar9 = (char *)xmalloc(sVar7 + 2);" (assignment_expression "pcVar9 = (char *)xmalloc(sVar7 + 2)" (identifier "pcVar9") (= "=") (cast_expression "(char *)xmalloc(sVar7 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar7 + 2)" (identifier "xmalloc") (argument_list "(sVar7 + 2)" (( "(") (binary_expression "sVar7 + 2" (identifier "sVar7") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (if_statement "if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {\n          strcpy(pcVar9,pcVar8);\n        }\n        else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }" (if "if") (parenthesized_expression "((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@'))" (( "(") (binary_expression "(*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')" (parenthesized_expression "(*(int *)(DAT_001d127c + 0x14) == 0)" (( "(") (binary_expression "*(int *)(DAT_001d127c + 0x14) == 0" (pointer_expression "*(int *)(DAT_001d127c + 0x14)" (* "*") (cast_expression "(int *)(DAT_001d127c + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d127c + 0x14)" (( "(") (binary_expression "DAT_001d127c + 0x14" (identifier "DAT_001d127c") (+ "+") (number_literal "0x14")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*pcVar8 == '@')" (( "(") (binary_expression "*pcVar8 == '@'" (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) (== "==") (char_literal "'@'" (' "'") (character "@") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          strcpy(pcVar9,pcVar8);\n        }" ({ "{") (expression_statement "strcpy(pcVar9,pcVar8);" (call_expression "strcpy(pcVar9,pcVar8)" (identifier "strcpy") (argument_list "(pcVar9,pcVar8)" (( "(") (identifier "pcVar9") (, ",") (identifier "pcVar8") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }" (else "else") (compound_statement "{\n          *pcVar9 = '_';\n          strcpy(pcVar9 + 1,pcVar8);\n          uVar14 = xstrdup(pcVar9);\n          FUN_00028f70(uVar14);\n        }" ({ "{") (expression_statement "*pcVar9 = '_';" (assignment_expression "*pcVar9 = '_'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (char_literal "'_'" (' "'") (character "_") (' "'"))) (; ";")) (expression_statement "strcpy(pcVar9 + 1,pcVar8);" (call_expression "strcpy(pcVar9 + 1,pcVar8)" (identifier "strcpy") (argument_list "(pcVar9 + 1,pcVar8)" (( "(") (binary_expression "pcVar9 + 1" (identifier "pcVar9") (+ "+") (number_literal "1")) (, ",") (identifier "pcVar8") () ")"))) (; ";")) (expression_statement "uVar14 = xstrdup(pcVar9);" (assignment_expression "uVar14 = xstrdup(pcVar9)" (identifier "uVar14") (= "=") (call_expression "xstrdup(pcVar9)" (identifier "xstrdup") (argument_list "(pcVar9)" (( "(") (identifier "pcVar9") () ")")))) (; ";")) (expression_statement "FUN_00028f70(uVar14);" (call_expression "FUN_00028f70(uVar14)" (identifier "FUN_00028f70") (argument_list "(uVar14)" (( "(") (identifier "uVar14") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);" (assignment_expression "iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1)" (identifier "iVar3") (= "=") (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1)" (identifier "bfd_link_hash_lookup") (argument_list "(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1)" (( "(") (pointer_expression "*(undefined4 *)(param_2 + 0x20)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")")))) (, ",") (identifier "pcVar9") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" (identifier "puVar24") (= "=") (identifier "DAT_001d1218")) (; ";")) (if_statement "if (iVar3 == 0) {\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }\n        else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar15 = strchr(pcVar8,0x2e);\n          if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }\n          pcVar15 = "%X%P: cannot export %s: symbol not found\n";\nLAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);\n          FUN_00034d20(uVar14,pcVar8);\n          puVar24 = DAT_001d1218;\n        }" ({ "{") (expression_statement "pcVar15 = strchr(pcVar8,0x2e);" (assignment_expression "pcVar15 = strchr(pcVar8,0x2e)" (identifier "pcVar15") (= "=") (call_expression "strchr(pcVar8,0x2e)" (identifier "strchr") (argument_list "(pcVar8,0x2e)" (( "(") (identifier "pcVar8") (, ",") (number_literal "0x2e") () ")")))) (; ";")) (if_statement "if (pcVar15 != (char *)0x0) {\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }" (if "if") (parenthesized_expression "(pcVar15 != (char *)0x0)" (( "(") (binary_expression "pcVar15 != (char *)0x0" (identifier "pcVar15") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00067968:\n            puVar24 = DAT_001d1218;\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            *(undefined1 *)(iVar6 + 0x18) = 1;\n            goto LAB_00067863;\n          }" ({ "{") (labeled_statement "LAB_00067968:\n            puVar24 = DAT_001d1218;" (statement_identifier "LAB_00067968") (: ":") (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" (identifier "puVar24") (= "=") (identifier "DAT_001d1218")) (; ";"))) (expression_statement "DAT_001d126c = DAT_001d126c + 1;" (assignment_expression "DAT_001d126c = DAT_001d126c + 1" (identifier "DAT_001d126c") (= "=") (binary_expression "DAT_001d126c + 1" (identifier "DAT_001d126c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar6 = iVar6 + DAT_001d1218[0xc];" (assignment_expression "iVar6 = iVar6 + DAT_001d1218[0xc]" (identifier "iVar6") (= "=") (binary_expression "iVar6 + DAT_001d1218[0xc]" (identifier "iVar6") (+ "+") (subscript_expression "DAT_001d1218[0xc]" (identifier "DAT_001d1218") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (if_statement "if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }" (if "if") (parenthesized_expression "(*(char *)(iVar6 + 0x16) == '\0')" (( "(") (binary_expression "*(char *)(iVar6 + 0x16) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x16)" (* "*") (cast_expression "(char *)(iVar6 + 0x16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x16)" (( "(") (binary_expression "iVar6 + 0x16" (identifier "iVar6") (+ "+") (number_literal "0x16")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }" ({ "{") (expression_statement "DAT_001d1268 = DAT_001d1268 + 1;" (assignment_expression "DAT_001d1268 = DAT_001d1268 + 1" (identifier "DAT_001d1268") (= "=") (binary_expression "DAT_001d1268 + 1" (identifier "DAT_001d1268") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(iVar6 + 0x18) = 1;" (assignment_expression "*(undefined1 *)(iVar6 + 0x18) = 1" (pointer_expression "*(undefined1 *)(iVar6 + 0x18)" (* "*") (cast_expression "(undefined1 *)(iVar6 + 0x18)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x18)" (( "(") (binary_expression "iVar6 + 0x18" (identifier "iVar6") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00067863;" (goto "goto") (statement_identifier "LAB_00067863") (; ";")) (} "}"))) (expression_statement "pcVar15 = "%X%P: cannot export %s: symbol not found\n";" (assignment_expression "pcVar15 = "%X%P: cannot export %s: symbol not found\n"" (identifier "pcVar15") (= "=") (string_literal ""%X%P: cannot export %s: symbol not found\n"" (" """) (string_content "%X%P: cannot export %s: symbol not found") (escape_sequence "\n") (" """))) (; ";")) (labeled_statement "LAB_000679ab:\n          uVar14 = dcgettext(0,pcVar15,5);" (statement_identifier "LAB_000679ab") (: ":") (expression_statement "uVar14 = dcgettext(0,pcVar15,5);" (assignment_expression "uVar14 = dcgettext(0,pcVar15,5)" (identifier "uVar14") (= "=") (call_expression "dcgettext(0,pcVar15,5)" (identifier "dcgettext") (argument_list "(0,pcVar15,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar15") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_00034d20(uVar14,pcVar8);" (call_expression "FUN_00034d20(uVar14,pcVar8)" (identifier "FUN_00034d20") (argument_list "(uVar14,pcVar8)" (( "(") (identifier "uVar14") (, ",") (identifier "pcVar8") () ")"))) (; ";")) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" (identifier "puVar24") (= "=") (identifier "DAT_001d1218")) (; ";")) (} "}")) (else_clause "else {\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }" (else "else") (compound_statement "{\n          cVar22 = *(char *)(iVar3 + 0xc);\n          if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }\n        }" ({ "{") (expression_statement "cVar22 = *(char *)(iVar3 + 0xc);" (assignment_expression "cVar22 = *(char *)(iVar3 + 0xc)" (identifier "cVar22") (= "=") (pointer_expression "*(char *)(iVar3 + 0xc)" (* "*") (cast_expression "(char *)(iVar3 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if ((cVar22 - 3U & 0xfd) == 0) {\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }\n          else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }" (if "if") (parenthesized_expression "((cVar22 - 3U & 0xfd) == 0)" (( "(") (binary_expression "(cVar22 - 3U & 0xfd) == 0" (parenthesized_expression "(cVar22 - 3U & 0xfd)" (( "(") (binary_expression "cVar22 - 3U & 0xfd" (binary_expression "cVar22 - 3U" (identifier "cVar22") (- "-") (number_literal "3U")) (& "&") (number_literal "0xfd")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            DAT_001d126c = DAT_001d126c + 1;\n            iVar6 = iVar6 + DAT_001d1218[0xc];\n            if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }\n            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);\n            if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }\nLAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);\n            if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }\n          }" ({ "{") (expression_statement "DAT_001d126c = DAT_001d126c + 1;" (assignment_expression "DAT_001d126c = DAT_001d126c + 1" (identifier "DAT_001d126c") (= "=") (binary_expression "DAT_001d126c + 1" (identifier "DAT_001d126c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar6 = iVar6 + DAT_001d1218[0xc];" (assignment_expression "iVar6 = iVar6 + DAT_001d1218[0xc]" (identifier "iVar6") (= "=") (binary_expression "iVar6 + DAT_001d1218[0xc]" (identifier "iVar6") (+ "+") (subscript_expression "DAT_001d1218[0xc]" (identifier "DAT_001d1218") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (if_statement "if (*(char *)(iVar6 + 0x16) == '\0') {\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }" (if "if") (parenthesized_expression "(*(char *)(iVar6 + 0x16) == '\0')" (( "(") (binary_expression "*(char *)(iVar6 + 0x16) == '\0'" (pointer_expression "*(char *)(iVar6 + 0x16)" (* "*") (cast_expression "(char *)(iVar6 + 0x16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x16)" (( "(") (binary_expression "iVar6 + 0x16" (identifier "iVar6") (+ "+") (number_literal "0x16")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              DAT_001d1268 = DAT_001d1268 + 1;\n            }" ({ "{") (expression_statement "DAT_001d1268 = DAT_001d1268 + 1;" (assignment_expression "DAT_001d1268 = DAT_001d1268 + 1" (identifier "DAT_001d1268") (= "=") (binary_expression "DAT_001d1268 + 1" (identifier "DAT_001d1268") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);" (assignment_expression "piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4)" (identifier "piVar13") (= "=") (cast_expression "(int *)((int)DAT_001d1274 + (int)local_48 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)DAT_001d1274 + (int)local_48 * 4)" (( "(") (binary_expression "(int)DAT_001d1274 + (int)local_48 * 4" (cast_expression "(int)DAT_001d1274" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_001d1274")) (+ "+") (binary_expression "(int)local_48 * 4" (cast_expression "(int)local_48" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_48")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (if_statement "if (cVar22 == '\x03') {\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }\n            else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }" (if "if") (parenthesized_expression "(cVar22 == '\x03')" (( "(") (binary_expression "cVar22 == '\x03'" (identifier "cVar22") (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")")) (compound_statement "{\n              *piVar13 = *(int *)(iVar3 + 0x14);\n            }" ({ "{") (expression_statement "*piVar13 = *(int *)(iVar3 + 0x14);" (assignment_expression "*piVar13 = *(int *)(iVar3 + 0x14)" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (= "=") (pointer_expression "*(int *)(iVar3 + 0x14)" (* "*") (cast_expression "(int *)(iVar3 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }" (else "else") (compound_statement "{\n              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);\n            }" ({ "{") (expression_statement "*piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);" (assignment_expression "*piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4)" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (= "=") (pointer_expression "*(int *)(*(int *)(iVar3 + 0x14) + 4)" (* "*") (cast_expression "(int *)(*(int *)(iVar3 + 0x14) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar3 + 0x14) + 4)" (( "(") (binary_expression "*(int *)(iVar3 + 0x14) + 4" (pointer_expression "*(int *)(iVar3 + 0x14)" (* "*") (cast_expression "(int *)(iVar3 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")))) (labeled_statement "LAB_00067863:\n            iVar6 = *(int *)(iVar6 + 0xc);" (statement_identifier "LAB_00067863") (: ":") (expression_statement "iVar6 = *(int *)(iVar6 + 0xc);" (assignment_expression "iVar6 = *(int *)(iVar6 + 0xc)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar6 + 0xc)" (* "*") (cast_expression "(int *)(iVar6 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xc)" (( "(") (binary_expression "iVar6 + 0xc" (identifier "iVar6") (+ "+") (number_literal "0xc")) () ")"))))) (; ";"))) (if_statement "if (iVar6 != -1) {\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }" (if "if") (parenthesized_expression "(iVar6 != -1)" (( "(") (binary_expression "iVar6 != -1" (identifier "iVar6") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n              if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }\n              if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }\n              DAT_001d1264 = DAT_001d1264 + 1;\n            }" ({ "{") (if_statement "if (DAT_001d1258 < iVar6) {\n                DAT_001d1258 = iVar6;\n              }" (if "if") (parenthesized_expression "(DAT_001d1258 < iVar6)" (( "(") (binary_expression "DAT_001d1258 < iVar6" (identifier "DAT_001d1258") (< "<") (identifier "iVar6")) () ")")) (compound_statement "{\n                DAT_001d1258 = iVar6;\n              }" ({ "{") (expression_statement "DAT_001d1258 = iVar6;" (assignment_expression "DAT_001d1258 = iVar6" (identifier "DAT_001d1258") (= "=") (identifier "iVar6")) (; ";")) (} "}"))) (if_statement "if (iVar6 < DAT_001d125c) {\n                DAT_001d125c = iVar6;\n              }" (if "if") (parenthesized_expression "(iVar6 < DAT_001d125c)" (( "(") (binary_expression "iVar6 < DAT_001d125c" (identifier "iVar6") (< "<") (identifier "DAT_001d125c")) () ")")) (compound_statement "{\n                DAT_001d125c = iVar6;\n              }" ({ "{") (expression_statement "DAT_001d125c = iVar6;" (assignment_expression "DAT_001d125c = iVar6" (identifier "DAT_001d125c") (= "=") (identifier "iVar6")) (; ";")) (} "}"))) (expression_statement "DAT_001d1264 = DAT_001d1264 + 1;" (assignment_expression "DAT_001d1264 = DAT_001d1264 + 1" (identifier "DAT_001d1264") (= "=") (binary_expression "DAT_001d1264 + 1" (identifier "DAT_001d1264") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }" (else "else") (compound_statement "{\n            pcVar15 = strchr(pcVar8,0x2e);\n            if (pcVar15 != (char *)0x0) goto LAB_00067968;\n            if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }\n            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);\n            FUN_00034d20(uVar14,pcVar8,cVar22,3);\n            puVar24 = DAT_001d1218;\n          }" ({ "{") (expression_statement "pcVar15 = strchr(pcVar8,0x2e);" (assignment_expression "pcVar15 = strchr(pcVar8,0x2e)" (identifier "pcVar15") (= "=") (call_expression "strchr(pcVar8,0x2e)" (identifier "strchr") (argument_list "(pcVar8,0x2e)" (( "(") (identifier "pcVar8") (, ",") (number_literal "0x2e") () ")")))) (; ";")) (if_statement "if (pcVar15 != (char *)0x0) goto LAB_00067968;" (if "if") (parenthesized_expression "(pcVar15 != (char *)0x0)" (( "(") (binary_expression "pcVar15 != (char *)0x0" (identifier "pcVar15") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00067968;" (goto "goto") (statement_identifier "LAB_00067968") (; ";"))) (if_statement "if (cVar22 == '\x01') {\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }" (if "if") (parenthesized_expression "(cVar22 == '\x01')" (( "(") (binary_expression "cVar22 == '\x01'" (identifier "cVar22") (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";\n              goto LAB_000679ab;\n            }" ({ "{") (expression_statement "pcVar15 = "%X%P: cannot export %s: symbol not defined\n";" (assignment_expression "pcVar15 = "%X%P: cannot export %s: symbol not defined\n"" (identifier "pcVar15") (= "=") (string_literal ""%X%P: cannot export %s: symbol not defined\n"" (" """) (string_content "%X%P: cannot export %s: symbol not defined") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_000679ab;" (goto "goto") (statement_identifier "LAB_000679ab") (; ";")) (} "}"))) (expression_statement "uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);" (assignment_expression "uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5)" (identifier "uVar14") (= "=") (call_expression "dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5)" (identifier "dcgettext") (argument_list "(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P: cannot export %s: symbol wrong type (%d vs %d)\n"" (" """) (string_content "%X%P: cannot export %s: symbol wrong type (%d vs %d)") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar14,pcVar8,cVar22,3);" (call_expression "FUN_00034d20(uVar14,pcVar8,cVar22,3)" (identifier "FUN_00034d20") (argument_list "(uVar14,pcVar8,cVar22,3)" (( "(") (identifier "uVar14") (, ",") (identifier "pcVar8") (, ",") (identifier "cVar22") (, ",") (number_literal "3") () ")"))) (; ";")) (expression_statement "puVar24 = DAT_001d1218;" (assignment_expression "puVar24 = DAT_001d1218" (identifier "puVar24") (= "=") (identifier "DAT_001d1218")) (; ";")) (} "}")))) (} "}")))) (expression_statement "free(pcVar9);" (call_expression "free(pcVar9)" (identifier "free") (argument_list "(pcVar9)" (( "(") (identifier "pcVar9") () ")"))) (; ";")) (expression_statement "local_48 = (int *)((int)local_48 + 1);" (assignment_expression "local_48 = (int *)((int)local_48 + 1)" (identifier "local_48") (= "=") (cast_expression "(int *)((int)local_48 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_48 + 1)" (( "(") (binary_expression "(int)local_48 + 1" (cast_expression "(int)local_48" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_48")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar6 = puVar24[0xb];" (assignment_expression "iVar6 = puVar24[0xb]" (identifier "iVar6") (= "=") (subscript_expression "puVar24[0xb]" (identifier "puVar24") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)local_48 < iVar6)" (( "(") (binary_expression "(int)local_48 < iVar6" (cast_expression "(int)local_48" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_48")) (< "<") (identifier "iVar6")) () ")")) (; ";")) (} "}"))) (labeled_statement "joined_r0x00067b8d:\n    if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }" (statement_identifier "joined_r0x00067b8d") (: ":") (if_statement "if (iVar6 == 0) {\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0006736e:\n      bVar2 = *param_2;\n      goto LAB_00067375;\n    }" ({ "{") (labeled_statement "LAB_0006736e:\n      bVar2 = *param_2;" (statement_identifier "LAB_0006736e") (: ":") (expression_statement "bVar2 = *param_2;" (assignment_expression "bVar2 = *param_2" (identifier "bVar2") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";"))) (goto_statement "goto LAB_00067375;" (goto "goto") (statement_identifier "LAB_00067375") (; ";")) (} "}")))) (} "}")))) (expression_statement "DAT_001d1260 = (char *)*puVar24;" (assignment_expression "DAT_001d1260 = (char *)*puVar24" (identifier "DAT_001d1260") (= "=") (cast_expression "(char *)*puVar24" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar24" (* "*") (identifier "puVar24")))) (; ";")) (if_statement "if (DAT_001d1260 == (char *)0x0) {\n    DAT_001d1260 = (char *)*param_1;\n    cVar22 = *DAT_001d1260;\n    if (cVar22 != '\0') {\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(DAT_001d1260 == (char *)0x0)" (( "(") (binary_expression "DAT_001d1260 == (char *)0x0" (identifier "DAT_001d1260") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    DAT_001d1260 = (char *)*param_1;\n    cVar22 = *DAT_001d1260;\n    if (cVar22 != '\0') {\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }\n  }" ({ "{") (expression_statement "DAT_001d1260 = (char *)*param_1;" (assignment_expression "DAT_001d1260 = (char *)*param_1" (identifier "DAT_001d1260") (= "=") (cast_expression "(char *)*param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "cVar22 = *DAT_001d1260;" (assignment_expression "cVar22 = *DAT_001d1260" (identifier "cVar22") (= "=") (pointer_expression "*DAT_001d1260" (* "*") (identifier "DAT_001d1260"))) (; ";")) (if_statement "if (cVar22 != '\0') {\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }" (if "if") (parenthesized_expression "(cVar22 != '\0')" (( "(") (binary_expression "cVar22 != '\0'" (identifier "cVar22") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      bVar26 = false;\n      pcVar9 = DAT_001d1260;\n      pcVar8 = DAT_001d1260;\n      do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');\n      if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }\n    }" ({ "{") (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" (identifier "bVar26") (= "=") (false "false")) (; ";")) (expression_statement "pcVar9 = DAT_001d1260;" (assignment_expression "pcVar9 = DAT_001d1260" (identifier "pcVar9") (= "=") (identifier "DAT_001d1260")) (; ";")) (expression_statement "pcVar8 = DAT_001d1260;" (assignment_expression "pcVar8 = DAT_001d1260" (identifier "pcVar8") (= "=") (identifier "DAT_001d1260")) (; ";")) (do_statement "do {\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      } while (cVar22 != '\0');" (do "do") (compound_statement "{\n        bVar25 = cVar22 == '\\';\n        bVar27 = cVar22 == '/';\n        bVar28 = cVar22 == ':';\n        pcVar9 = pcVar9 + 1;\n        cVar22 = *pcVar9;\n        if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }\n      }" ({ "{") (expression_statement "bVar25 = cVar22 == '\\';" (assignment_expression "bVar25 = cVar22 == '\\'" (identifier "bVar25") (= "=") (binary_expression "cVar22 == '\\'" (identifier "cVar22") (== "==") (char_literal "'\\'" (' "'") (escape_sequence "\\") (' "'")))) (; ";")) (expression_statement "bVar27 = cVar22 == '/';" (assignment_expression "bVar27 = cVar22 == '/'" (identifier "bVar27") (= "=") (binary_expression "cVar22 == '/'" (identifier "cVar22") (== "==") (char_literal "'/'" (' "'") (character "/") (' "'")))) (; ";")) (expression_statement "bVar28 = cVar22 == ':';" (assignment_expression "bVar28 = cVar22 == ':'" (identifier "bVar28") (= "=") (binary_expression "cVar22 == ':'" (identifier "cVar22") (== "==") (char_literal "':'" (' "'") (character ":") (' "'")))) (; ";")) (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + 1" (identifier "pcVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar22 = *pcVar9;" (assignment_expression "cVar22 = *pcVar9" (identifier "cVar22") (= "=") (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9"))) (; ";")) (if_statement "if ((bVar25 || bVar27) || bVar28) {\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }" (if "if") (parenthesized_expression "((bVar25 || bVar27) || bVar28)" (( "(") (binary_expression "(bVar25 || bVar27) || bVar28" (parenthesized_expression "(bVar25 || bVar27)" (( "(") (binary_expression "bVar25 || bVar27" (identifier "bVar25") (|| "||") (identifier "bVar27")) () ")")) (|| "||") (identifier "bVar28")) () ")")) (compound_statement "{\n          bVar26 = (bVar25 || bVar27) || bVar28;\n          pcVar8 = pcVar9;\n        }" ({ "{") (expression_statement "bVar26 = (bVar25 || bVar27) || bVar28;" (assignment_expression "bVar26 = (bVar25 || bVar27) || bVar28" (identifier "bVar26") (= "=") (binary_expression "(bVar25 || bVar27) || bVar28" (parenthesized_expression "(bVar25 || bVar27)" (( "(") (binary_expression "bVar25 || bVar27" (identifier "bVar25") (|| "||") (identifier "bVar27")) () ")")) (|| "||") (identifier "bVar28"))) (; ";")) (expression_statement "pcVar8 = pcVar9;" (assignment_expression "pcVar8 = pcVar9" (identifier "pcVar8") (= "=") (identifier "pcVar9")) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(cVar22 != '\0')" (( "(") (binary_expression "cVar22 != '\0'" (identifier "cVar22") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (if_statement "if (bVar26) {\n        DAT_001d1260 = pcVar8;\n      }" (if "if") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (compound_statement "{\n        DAT_001d1260 = pcVar8;\n      }" ({ "{") (expression_statement "DAT_001d1260 = pcVar8;" (assignment_expression "DAT_001d1260 = pcVar8" (identifier "DAT_001d1260") (= "=") (identifier "pcVar8")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (if_statement "if ((DAT_001d1264 == 0) || (DAT_001d1258 <= DAT_001d126c)) {\n    DAT_001d125c = 1;\n    DAT_001d1258 = DAT_001d126c;\n  }\n  else {\n    iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;\n    if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }\n  }" (if "if") (parenthesized_expression "((DAT_001d1264 == 0) || (DAT_001d1258 <= DAT_001d126c))" (( "(") (binary_expression "(DAT_001d1264 == 0) || (DAT_001d1258 <= DAT_001d126c)" (parenthesized_expression "(DAT_001d1264 == 0)" (( "(") (binary_expression "DAT_001d1264 == 0" (identifier "DAT_001d1264") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(DAT_001d1258 <= DAT_001d126c)" (( "(") (binary_expression "DAT_001d1258 <= DAT_001d126c" (identifier "DAT_001d1258") (<= "<=") (identifier "DAT_001d126c")) () ")"))) () ")")) (compound_statement "{\n    DAT_001d125c = 1;\n    DAT_001d1258 = DAT_001d126c;\n  }" ({ "{") (expression_statement "DAT_001d125c = 1;" (assignment_expression "DAT_001d125c = 1" (identifier "DAT_001d125c") (= "=") (number_literal "1")) (; ";")) (expression_statement "DAT_001d1258 = DAT_001d126c;" (assignment_expression "DAT_001d1258 = DAT_001d126c" (identifier "DAT_001d1258") (= "=") (identifier "DAT_001d126c")) (; ";")) (} "}")) (else_clause "else {\n    iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;\n    if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }\n  }" (else "else") (compound_statement "{\n    iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;\n    if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }\n  }" ({ "{") (expression_statement "iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;" (assignment_expression "iVar6 = (DAT_001d1258 - DAT_001d126c) + 1" (identifier "iVar6") (= "=") (binary_expression "(DAT_001d1258 - DAT_001d126c) + 1" (parenthesized_expression "(DAT_001d1258 - DAT_001d126c)" (( "(") (binary_expression "DAT_001d1258 - DAT_001d126c" (identifier "DAT_001d1258") (- "-") (identifier "DAT_001d126c")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar6 < DAT_001d125c) {\n      DAT_001d125c = iVar6;\n    }" (if "if") (parenthesized_expression "(iVar6 < DAT_001d125c)" (( "(") (binary_expression "iVar6 < DAT_001d125c" (identifier "iVar6") (< "<") (identifier "DAT_001d125c")) () ")")) (compound_statement "{\n      DAT_001d125c = iVar6;\n    }" ({ "{") (expression_statement "DAT_001d125c = iVar6;" (assignment_expression "DAT_001d125c = iVar6" (identifier "DAT_001d125c") (= "=") (identifier "iVar6")) (; ";")) (} "}"))) (} "}")))) (expression_statement "DAT_001d1270 = (DAT_001d1258 - DAT_001d125c) + 1;" (assignment_expression "DAT_001d1270 = (DAT_001d1258 - DAT_001d125c) + 1" (identifier "DAT_001d1270") (= "=") (binary_expression "(DAT_001d1258 - DAT_001d125c) + 1" (parenthesized_expression "(DAT_001d1258 - DAT_001d125c)" (( "(") (binary_expression "DAT_001d1258 - DAT_001d125c" (identifier "DAT_001d1258") (- "-") (identifier "DAT_001d125c")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar11 = (undefined4 *)xmalloc(DAT_001d1270 * 4);" (assignment_expression "puVar11 = (undefined4 *)xmalloc(DAT_001d1270 * 4)" (identifier "puVar11") (= "=") (cast_expression "(undefined4 *)xmalloc(DAT_001d1270 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(DAT_001d1270 * 4)" (identifier "xmalloc") (argument_list "(DAT_001d1270 * 4)" (( "(") (binary_expression "DAT_001d1270 * 4" (identifier "DAT_001d1270") (* "*") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "puVar24 = puVar11 + DAT_001d1270;" (assignment_expression "puVar24 = puVar11 + DAT_001d1270" (identifier "puVar24") (= "=") (binary_expression "puVar11 + DAT_001d1270" (identifier "puVar11") (+ "+") (identifier "DAT_001d1270"))) (; ";")) (expression_statement "DAT_001d1254 = puVar11;" (assignment_expression "DAT_001d1254 = puVar11" (identifier "DAT_001d1254") (= "=") (identifier "puVar11")) (; ";")) (if_statement "if (0 < DAT_001d1270) {\n    do {\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    } while (puVar24 != puVar11);\n  }" (if "if") (parenthesized_expression "(0 < DAT_001d1270)" (( "(") (binary_expression "0 < DAT_001d1270" (number_literal "0") (< "<") (identifier "DAT_001d1270")) () ")")) (compound_statement "{\n    do {\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    } while (puVar24 != puVar11);\n  }" ({ "{") (do_statement "do {\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    } while (puVar24 != puVar11);" (do "do") (compound_statement "{\n      *puVar11 = 0xffffffff;\n      puVar11 = puVar11 + 1;\n    }" ({ "{") (expression_statement "*puVar11 = 0xffffffff;" (assignment_expression "*puVar11 = 0xffffffff" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 1" (identifier "puVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar24 != puVar11)" (( "(") (binary_expression "puVar24 != puVar11" (identifier "puVar24") (!= "!=") (identifier "puVar11")) () ")")) (; ";")) (} "}"))) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" (identifier "local_48") (= "=") (identifier "DAT_001d1218")) (; ";")) (expression_statement "local_3c = DAT_001d125c;" (assignment_expression "local_3c = DAT_001d125c" (identifier "local_3c") (= "=") (identifier "DAT_001d125c")) (; ";")) (if_statement "if ((int)DAT_001d1218[0xb] < 1) {\n    local_44 = 0;\n    iVar6 = DAT_001d125c;\n    goto LAB_00067580;\n  }" (if "if") (parenthesized_expression "((int)DAT_001d1218[0xb] < 1)" (( "(") (binary_expression "(int)DAT_001d1218[0xb] < 1" (cast_expression "(int)DAT_001d1218[0xb]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "DAT_001d1218[0xb]" (identifier "DAT_001d1218") ([ "[") (number_literal "0xb") (] "]"))) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    local_44 = 0;\n    iVar6 = DAT_001d125c;\n    goto LAB_00067580;\n  }" ({ "{") (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar6 = DAT_001d125c;" (assignment_expression "iVar6 = DAT_001d125c" (identifier "iVar6") (= "=") (identifier "DAT_001d125c")) (; ";")) (goto_statement "goto LAB_00067580;" (goto "goto") (statement_identifier "LAB_00067580") (; ";")) (} "}"))) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = (char *)0x0;" (assignment_expression "local_40 = (char *)0x0" (identifier "local_40") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar3 = DAT_001d1218[0xc];" (assignment_expression "iVar3 = DAT_001d1218[0xc]" (identifier "iVar3") (= "=") (subscript_expression "DAT_001d1218[0xc]" (identifier "DAT_001d1218") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (do_statement "do {\n    iVar6 = (int)local_40 * 0x1c;\n    puVar24 = (undefined4 *)(iVar3 + iVar6);\n    if ((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))\n    {\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }\n    else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }\n    if (*(char *)(puVar24 + 6) != '\0') {\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }\n    pvVar4 = DAT_001d1274;\n    puVar24 = DAT_001d1254;\n    local_40 = (char *)((int)local_40 + 1);\n  } while ((int)local_40 < local_48[0xb]);" (do "do") (compound_statement "{\n    iVar6 = (int)local_40 * 0x1c;\n    puVar24 = (undefined4 *)(iVar3 + iVar6);\n    if ((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))\n    {\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }\n    else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }\n    if (*(char *)(puVar24 + 6) != '\0') {\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }\n    pvVar4 = DAT_001d1274;\n    puVar24 = DAT_001d1254;\n    local_40 = (char *)((int)local_40 + 1);\n  }" ({ "{") (expression_statement "iVar6 = (int)local_40 * 0x1c;" (assignment_expression "iVar6 = (int)local_40 * 0x1c" (identifier "iVar6") (= "=") (binary_expression "(int)local_40 * 0x1c" (cast_expression "(int)local_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_40")) (* "*") (number_literal "0x1c"))) (; ";")) (expression_statement "puVar24 = (undefined4 *)(iVar3 + iVar6);" (assignment_expression "puVar24 = (undefined4 *)(iVar3 + iVar6)" (identifier "puVar24") (= "=") (cast_expression "(undefined4 *)(iVar3 + iVar6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + iVar6)" (( "(") (binary_expression "iVar3 + iVar6" (identifier "iVar3") (+ "+") (identifier "iVar6")) () ")")))) (; ";")) (if_statement "if ((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))\n    {\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }\n    else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }" (if "if") (parenthesized_expression "((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))" (( "(") (binary_expression "(*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0')" (parenthesized_expression "(*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0)" (( "(") (binary_expression "*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0" (pointer_expression "*(int *)((int)DAT_001d1274 + (int)local_40 * 4)" (* "*") (cast_expression "(int *)((int)DAT_001d1274 + (int)local_40 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)DAT_001d1274 + (int)local_40 * 4)" (( "(") (binary_expression "(int)DAT_001d1274 + (int)local_40 * 4" (cast_expression "(int)DAT_001d1274" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_001d1274")) (+ "+") (binary_expression "(int)local_40 * 4" (cast_expression "(int)local_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_40")) (* "*") (number_literal "4"))) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(puVar24 + 6) == '\0')" (( "(") (binary_expression "*(char *)(puVar24 + 6) == '\0'" (pointer_expression "*(char *)(puVar24 + 6)" (* "*") (cast_expression "(char *)(puVar24 + 6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 6)" (( "(") (binary_expression "puVar24 + 6" (identifier "puVar24") (+ "+") (number_literal "6")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n    }" ({ "{") (expression_statement "iVar3 = local_48[0xc];" (assignment_expression "iVar3 = local_48[0xc]" (identifier "iVar3") (= "=") (subscript_expression "local_48[0xc]" (identifier "local_48") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "puVar24 = (undefined4 *)(iVar6 + iVar3);" (assignment_expression "puVar24 = (undefined4 *)(iVar6 + iVar3)" (identifier "puVar24") (= "=") (cast_expression "(undefined4 *)(iVar6 + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + iVar3)" (( "(") (binary_expression "iVar6 + iVar3" (identifier "iVar6") (+ "+") (identifier "iVar3")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }" (else "else") (compound_statement "{\n      iVar18 = puVar24[3];\n      if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }\n      iVar3 = local_48[0xc];\n      puVar24 = (undefined4 *)(iVar6 + iVar3);\n      if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }\n    }" ({ "{") (expression_statement "iVar18 = puVar24[3];" (assignment_expression "iVar18 = puVar24[3]" (identifier "iVar18") (= "=") (subscript_expression "puVar24[3]" (identifier "puVar24") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (iVar18 != -1) {\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }" (if "if") (parenthesized_expression "(iVar18 != -1)" (( "(") (binary_expression "iVar18 != -1" (identifier "iVar18") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n        iVar21 = iVar18 - local_3c;\n        piVar13 = DAT_001d1254 + iVar21;\n        if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }\n        *piVar13 = (int)local_40;\n      }" ({ "{") (expression_statement "iVar21 = iVar18 - local_3c;" (assignment_expression "iVar21 = iVar18 - local_3c" (identifier "iVar21") (= "=") (binary_expression "iVar18 - local_3c" (identifier "iVar18") (- "-") (identifier "local_3c"))) (; ";")) (expression_statement "piVar13 = DAT_001d1254 + iVar21;" (assignment_expression "piVar13 = DAT_001d1254 + iVar21" (identifier "piVar13") (= "=") (binary_expression "DAT_001d1254 + iVar21" (identifier "DAT_001d1254") (+ "+") (identifier "iVar21"))) (; ";")) (if_statement "if (*piVar13 != -1) {\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }" (if "if") (parenthesized_expression "(*piVar13 != -1)" (( "(") (binary_expression "*piVar13 != -1" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n          uVar14 = *puVar24;\n          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);\n          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);\n          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);\n          local_3c = DAT_001d125c;\n          piVar13 = DAT_001d1254 + iVar21;\n          local_48 = DAT_001d1218;\n        }" ({ "{") (expression_statement "uVar14 = *puVar24;" (assignment_expression "uVar14 = *puVar24" (identifier "uVar14") (= "=") (pointer_expression "*puVar24" (* "*") (identifier "puVar24"))) (; ";")) (expression_statement "uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);" (assignment_expression "uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c)" (identifier "uVar16") (= "=") (pointer_expression "*(undefined4 *)(iVar3 + *piVar13 * 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar3 + *piVar13 * 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + *piVar13 * 0x1c)" (( "(") (binary_expression "iVar3 + *piVar13 * 0x1c" (identifier "iVar3") (+ "+") (binary_expression "*piVar13 * 0x1c" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (* "*") (number_literal "0x1c"))) () ")"))))) (; ";")) (expression_statement "uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5)" (identifier "dcgettext") (argument_list "(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P: error: ordinal used twice: %d (%s vs %s)\n"" (" """) (string_content "%X%P: error: ordinal used twice: %d (%s vs %s)") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar12,iVar18,uVar14,uVar16);" (call_expression "FUN_00034d20(uVar12,iVar18,uVar14,uVar16)" (identifier "FUN_00034d20") (argument_list "(uVar12,iVar18,uVar14,uVar16)" (( "(") (identifier "uVar12") (, ",") (identifier "iVar18") (, ",") (identifier "uVar14") (, ",") (identifier "uVar16") () ")"))) (; ";")) (expression_statement "local_3c = DAT_001d125c;" (assignment_expression "local_3c = DAT_001d125c" (identifier "local_3c") (= "=") (identifier "DAT_001d125c")) (; ";")) (expression_statement "piVar13 = DAT_001d1254 + iVar21;" (assignment_expression "piVar13 = DAT_001d1254 + iVar21" (identifier "piVar13") (= "=") (binary_expression "DAT_001d1254 + iVar21" (identifier "DAT_001d1254") (+ "+") (identifier "iVar21"))) (; ";")) (expression_statement "local_48 = DAT_001d1218;" (assignment_expression "local_48 = DAT_001d1218" (identifier "local_48") (= "=") (identifier "DAT_001d1218")) (; ";")) (} "}"))) (expression_statement "*piVar13 = (int)local_40;" (assignment_expression "*piVar13 = (int)local_40" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (= "=") (cast_expression "(int)local_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_40"))) (; ";")) (} "}"))) (expression_statement "iVar3 = local_48[0xc];" (assignment_expression "iVar3 = local_48[0xc]" (identifier "iVar3") (= "=") (subscript_expression "local_48[0xc]" (identifier "local_48") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "puVar24 = (undefined4 *)(iVar6 + iVar3);" (assignment_expression "puVar24 = (undefined4 *)(iVar6 + iVar3)" (identifier "puVar24") (= "=") (cast_expression "(undefined4 *)(iVar6 + iVar3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + iVar3)" (( "(") (binary_expression "iVar6 + iVar3" (identifier "iVar6") (+ "+") (identifier "iVar3")) () ")")))) (; ";")) (if_statement "if ((char *)puVar24[2] == (char *)0x0) {\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }\n      else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }" (if "if") (parenthesized_expression "((char *)puVar24[2] == (char *)0x0)" (( "(") (binary_expression "(char *)puVar24[2] == (char *)0x0" (cast_expression "(char *)puVar24[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar24[2]" (identifier "puVar24") ([ "[") (number_literal "2") (] "]"))) (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        sVar7 = strlen((char *)*puVar24);\n        local_44 = sVar7 + local_44 + 1;\n      }" ({ "{") (expression_statement "sVar7 = strlen((char *)*puVar24);" (assignment_expression "sVar7 = strlen((char *)*puVar24)" (identifier "sVar7") (= "=") (call_expression "strlen((char *)*puVar24)" (identifier "strlen") (argument_list "((char *)*puVar24)" (( "(") (cast_expression "(char *)*puVar24" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar24" (* "*") (identifier "puVar24"))) () ")")))) (; ";")) (expression_statement "local_44 = sVar7 + local_44 + 1;" (assignment_expression "local_44 = sVar7 + local_44 + 1" (identifier "local_44") (= "=") (binary_expression "sVar7 + local_44 + 1" (binary_expression "sVar7 + local_44" (identifier "sVar7") (+ "+") (identifier "local_44")) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }" (else "else") (compound_statement "{\n        sVar7 = strlen((char *)puVar24[2]);\n        local_44 = sVar7 + local_44 + 1;\n      }" ({ "{") (expression_statement "sVar7 = strlen((char *)puVar24[2]);" (assignment_expression "sVar7 = strlen((char *)puVar24[2])" (identifier "sVar7") (= "=") (call_expression "strlen((char *)puVar24[2])" (identifier "strlen") (argument_list "((char *)puVar24[2])" (( "(") (cast_expression "(char *)puVar24[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar24[2]" (identifier "puVar24") ([ "[") (number_literal "2") (] "]"))) () ")")))) (; ";")) (expression_statement "local_44 = sVar7 + local_44 + 1;" (assignment_expression "local_44 = sVar7 + local_44 + 1" (identifier "local_44") (= "=") (binary_expression "sVar7 + local_44 + 1" (binary_expression "sVar7 + local_44" (identifier "sVar7") (+ "+") (identifier "local_44")) (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (*(char *)(puVar24 + 6) != '\0') {\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }" (if "if") (parenthesized_expression "(*(char *)(puVar24 + 6) != '\0')" (( "(") (binary_expression "*(char *)(puVar24 + 6) != '\0'" (pointer_expression "*(char *)(puVar24 + 6)" (* "*") (cast_expression "(char *)(puVar24 + 6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 6)" (( "(") (binary_expression "puVar24 + 6" (identifier "puVar24") (+ "+") (number_literal "6")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      sVar7 = strlen((char *)puVar24[1]);\n      local_44 = local_44 + 1 + sVar7;\n    }" ({ "{") (expression_statement "sVar7 = strlen((char *)puVar24[1]);" (assignment_expression "sVar7 = strlen((char *)puVar24[1])" (identifier "sVar7") (= "=") (call_expression "strlen((char *)puVar24[1])" (identifier "strlen") (argument_list "((char *)puVar24[1])" (( "(") (cast_expression "(char *)puVar24[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar24[1]" (identifier "puVar24") ([ "[") (number_literal "1") (] "]"))) () ")")))) (; ";")) (expression_statement "local_44 = local_44 + 1 + sVar7;" (assignment_expression "local_44 = local_44 + 1 + sVar7" (identifier "local_44") (= "=") (binary_expression "local_44 + 1 + sVar7" (binary_expression "local_44 + 1" (identifier "local_44") (+ "+") (number_literal "1")) (+ "+") (identifier "sVar7"))) (; ";")) (} "}"))) (expression_statement "pvVar4 = DAT_001d1274;" (assignment_expression "pvVar4 = DAT_001d1274" (identifier "pvVar4") (= "=") (identifier "DAT_001d1274")) (; ";")) (expression_statement "puVar24 = DAT_001d1254;" (assignment_expression "puVar24 = DAT_001d1254" (identifier "puVar24") (= "=") (identifier "DAT_001d1254")) (; ";")) (expression_statement "local_40 = (char *)((int)local_40 + 1);" (assignment_expression "local_40 = (char *)((int)local_40 + 1)" (identifier "local_40") (= "=") (cast_expression "(char *)((int)local_40 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_40 + 1)" (( "(") (binary_expression "(int)local_40 + 1" (cast_expression "(int)local_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_40")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)local_40 < local_48[0xb])" (( "(") (binary_expression "(int)local_40 < local_48[0xb]" (cast_expression "(int)local_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_40")) (< "<") (subscript_expression "local_48[0xb]" (identifier "local_48") ([ "[") (number_literal "0xb") (] "]"))) () ")")) (; ";")) (expression_statement "iVar6 = local_3c;" (assignment_expression "iVar6 = local_3c" (identifier "iVar6") (= "=") (identifier "local_3c")) (; ";")) (if_statement "if (local_48[0xb] < 1) goto LAB_00067580;" (if "if") (parenthesized_expression "(local_48[0xb] < 1)" (( "(") (binary_expression "local_48[0xb] < 1" (subscript_expression "local_48[0xb]" (identifier "local_48") ([ "[") (number_literal "0xb") (] "]")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_00067580;" (goto "goto") (statement_identifier "LAB_00067580") (; ";"))) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar13 = (int *)(iVar3 + 0xc);" (assignment_expression "piVar13 = (int *)(iVar3 + 0xc)" (identifier "piVar13") (= "=") (cast_expression "(int *)(iVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (do_statement "do {\n    if (*(int *)((int)pvVar4 + iVar18 * 4) == 0) {\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }\n    iVar18 = iVar18 + 1;\n    piVar13 = piVar13 + 7;\n    if (local_48[0xb] <= iVar18) {\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    if (*(int *)((int)pvVar4 + iVar18 * 4) == 0) {\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }\n    iVar18 = iVar18 + 1;\n    piVar13 = piVar13 + 7;\n    if (local_48[0xb] <= iVar18) {\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }\n  }" ({ "{") (if_statement "if (*(int *)((int)pvVar4 + iVar18 * 4) == 0) {\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }\n    else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }" (if "if") (parenthesized_expression "(*(int *)((int)pvVar4 + iVar18 * 4) == 0)" (( "(") (binary_expression "*(int *)((int)pvVar4 + iVar18 * 4) == 0" (pointer_expression "*(int *)((int)pvVar4 + iVar18 * 4)" (* "*") (cast_expression "(int *)((int)pvVar4 + iVar18 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar4 + iVar18 * 4)" (( "(") (binary_expression "(int)pvVar4 + iVar18 * 4" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (binary_expression "iVar18 * 4" (identifier "iVar18") (* "*") (number_literal "4"))) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }\n    }" ({ "{") (if_statement "if ((char)piVar13[3] != '\0') {\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }" (if "if") (parenthesized_expression "((char)piVar13[3] != '\0')" (( "(") (binary_expression "(char)piVar13[3] != '\0'" (cast_expression "(char)piVar13[3]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar13[3]" (identifier "piVar13") ([ "[") (number_literal "3") (] "]"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        iVar3 = *piVar13;\n        goto joined_r0x000676c3;\n      }" ({ "{") (expression_statement "iVar3 = *piVar13;" (assignment_expression "iVar3 = *piVar13" (identifier "iVar3") (= "=") (pointer_expression "*piVar13" (* "*") (identifier "piVar13"))) (; ";")) (goto_statement "goto joined_r0x000676c3;" (goto "goto") (statement_identifier "joined_r0x000676c3") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }" (else "else") (compound_statement "{\n      iVar3 = *piVar13;\njoined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }\n    }" ({ "{") (expression_statement "iVar3 = *piVar13;" (assignment_expression "iVar3 = *piVar13" (identifier "iVar3") (= "=") (pointer_expression "*piVar13" (* "*") (identifier "piVar13"))) (; ";")) (labeled_statement "joined_r0x000676c3:\n      if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }" (statement_identifier "joined_r0x000676c3") (: ":") (if_statement "if (iVar3 == -1) {\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        piVar17 = puVar24 + (iVar6 - local_3c);\n        if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }\n        *piVar17 = iVar18;\n        *piVar13 = iVar6;\n      }" ({ "{") (expression_statement "piVar17 = puVar24 + (iVar6 - local_3c);" (assignment_expression "piVar17 = puVar24 + (iVar6 - local_3c)" (identifier "piVar17") (= "=") (binary_expression "puVar24 + (iVar6 - local_3c)" (identifier "puVar24") (+ "+") (parenthesized_expression "(iVar6 - local_3c)" (( "(") (binary_expression "iVar6 - local_3c" (identifier "iVar6") (- "-") (identifier "local_3c")) () ")")))) (; ";")) (if_statement "if (*piVar17 != -1) {\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }" (if "if") (parenthesized_expression "(*piVar17 != -1)" (( "(") (binary_expression "*piVar17 != -1" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n          iVar6 = iVar6 + 1;\n          piVar17 = puVar24 + (iVar6 - local_3c);\n          while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }\n        }" ({ "{") (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar17 = puVar24 + (iVar6 - local_3c);" (assignment_expression "piVar17 = puVar24 + (iVar6 - local_3c)" (identifier "piVar17") (= "=") (binary_expression "puVar24 + (iVar6 - local_3c)" (identifier "puVar24") (+ "+") (parenthesized_expression "(iVar6 - local_3c)" (( "(") (binary_expression "iVar6 - local_3c" (identifier "iVar6") (- "-") (identifier "local_3c")) () ")")))) (; ";")) (while_statement "while (*piVar17 != -1) {\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }" (while "while") (parenthesized_expression "(*piVar17 != -1)" (( "(") (binary_expression "*piVar17 != -1" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n            iVar6 = iVar6 + 1;\n            piVar17 = piVar17 + 1;\n          }" ({ "{") (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar17 = piVar17 + 1;" (assignment_expression "piVar17 = piVar17 + 1" (identifier "piVar17") (= "=") (binary_expression "piVar17 + 1" (identifier "piVar17") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "*piVar17 = iVar18;" (assignment_expression "*piVar17 = iVar18" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (= "=") (identifier "iVar18")) (; ";")) (expression_statement "*piVar13 = iVar6;" (assignment_expression "*piVar13 = iVar6" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (= "=") (identifier "iVar6")) (; ";")) (} "}")))) (} "}")))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar13 = piVar13 + 7;" (assignment_expression "piVar13 = piVar13 + 7" (identifier "piVar13") (= "=") (binary_expression "piVar13 + 7" (identifier "piVar13") (+ "+") (number_literal "7"))) (; ";")) (if_statement "if (local_48[0xb] <= iVar18) {\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }" (if "if") (parenthesized_expression "(local_48[0xb] <= iVar18)" (( "(") (binary_expression "local_48[0xb] <= iVar18" (subscript_expression "local_48[0xb]" (identifier "local_48") ([ "[") (number_literal "0xb") (] "]")) (<= "<=") (identifier "iVar18")) () ")")) (compound_statement "{\nLAB_00067580:\n      iVar3 = DAT_001d1258;\n      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }\n      iVar6 = DAT_001d1268;\n      sVar7 = strlen(DAT_001d1260);\n      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;\n      FUN_00061a40();\n      FUN_00066c30(DAT_001d12a0);\n      return;\n    }" ({ "{") (labeled_statement "LAB_00067580:\n      iVar3 = DAT_001d1258;" (statement_identifier "LAB_00067580") (: ":") (expression_statement "iVar3 = DAT_001d1258;" (assignment_expression "iVar3 = DAT_001d1258" (identifier "iVar3") (= "=") (identifier "DAT_001d1258")) (; ";"))) (if_statement "if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }" (if "if") (parenthesized_expression "((0xffff < DAT_001d1258) || (0xffff < iVar6))" (( "(") (binary_expression "(0xffff < DAT_001d1258) || (0xffff < iVar6)" (parenthesized_expression "(0xffff < DAT_001d1258)" (( "(") (binary_expression "0xffff < DAT_001d1258" (number_literal "0xffff") (< "<") (identifier "DAT_001d1258")) () ")")) (|| "||") (parenthesized_expression "(0xffff < iVar6)" (( "(") (binary_expression "0xffff < iVar6" (number_literal "0xffff") (< "<") (identifier "iVar6")) () ")"))) () ")")) (compound_statement "{\n        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);\n        if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }\n        FUN_00034d20(uVar14,iVar6);\n      }" ({ "{") (expression_statement "uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);" (assignment_expression "uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5)" (identifier "uVar14") (= "=") (call_expression "dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5)" (identifier "dcgettext") (argument_list "(0,"%X%P: error: export ordinal too large: %d\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P: error: export ordinal too large: %d\n"" (" """) (string_content "%X%P: error: export ordinal too large: %d") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (if_statement "if (iVar6 <= iVar3) {\n          iVar6 = iVar3;\n        }" (if "if") (parenthesized_expression "(iVar6 <= iVar3)" (( "(") (binary_expression "iVar6 <= iVar3" (identifier "iVar6") (<= "<=") (identifier "iVar3")) () ")")) (compound_statement "{\n          iVar6 = iVar3;\n        }" ({ "{") (expression_statement "iVar6 = iVar3;" (assignment_expression "iVar6 = iVar3" (identifier "iVar6") (= "=") (identifier "iVar3")) (; ";")) (} "}"))) (expression_statement "FUN_00034d20(uVar14,iVar6);" (call_expression "FUN_00034d20(uVar14,iVar6)" (identifier "FUN_00034d20") (argument_list "(uVar14,iVar6)" (( "(") (identifier "uVar14") (, ",") (identifier "iVar6") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar6 = DAT_001d1268;" (assignment_expression "iVar6 = DAT_001d1268" (identifier "iVar6") (= "=") (identifier "DAT_001d1268")) (; ";")) (expression_statement "sVar7 = strlen(DAT_001d1260);" (assignment_expression "sVar7 = strlen(DAT_001d1260)" (identifier "sVar7") (= "=") (call_expression "strlen(DAT_001d1260)" (identifier "strlen") (argument_list "(DAT_001d1260)" (( "(") (identifier "DAT_001d1260") () ")")))) (; ";")) (expression_statement "DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;" (assignment_expression "DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7" (identifier "DAT_001d128c") (= "=") (binary_expression "local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7" (binary_expression "local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4" (binary_expression "local_44 + iVar6 * 6 + 0x29" (binary_expression "local_44 + iVar6 * 6" (identifier "local_44") (+ "+") (binary_expression "iVar6 * 6" (identifier "iVar6") (* "*") (number_literal "6"))) (+ "+") (number_literal "0x29")) (+ "+") (binary_expression "DAT_001d1270 * 4" (identifier "DAT_001d1270") (* "*") (number_literal "4"))) (+ "+") (identifier "sVar7"))) (; ";")) (expression_statement "FUN_00061a40();" (call_expression "FUN_00061a40()" (identifier "FUN_00061a40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00066c30(DAT_001d12a0);" (call_expression "FUN_00066c30(DAT_001d12a0)" (identifier "FUN_00066c30") (argument_list "(DAT_001d12a0)" (( "(") (identifier "DAT_001d12a0") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (labeled_statement "code_r0x00066da5:\n  piVar13 = (int *)*piVar13;" (statement_identifier "code_r0x00066da5") (: ":") (expression_statement "piVar13 = (int *)*piVar13;" (assignment_expression "piVar13 = (int *)*piVar13" (identifier "piVar13") (= "=") (cast_expression "(int *)*piVar13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")))) (; ";"))) (expression_statement "**(uint **)(iVar6 + 0x14) = *puVar1;" (assignment_expression "**(uint **)(iVar6 + 0x14) = *puVar1" (pointer_expression "**(uint **)(iVar6 + 0x14)" (* "*") (pointer_expression "*(uint **)(iVar6 + 0x14)" (* "*") (cast_expression "(uint **)(iVar6 + 0x14)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")"))))) (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (goto_statement "goto joined_r0x00066d64;" (goto "goto") (statement_identifier "joined_r0x00066d64") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void function_1(type_1 *abfd,type_2 *info)

{
  type_3 *puVar1;
  type_4 **var_33;
  type_4 **var_34;
  type_1 *var_5;
  char cVar5;
  char cVar6;
  type_5 uVar7;
  type_6 **ppbVar8;
  type_7 var_15;
  int var_7;
  char *var_42;
  type_6 *var_22;
  type_4 *pbVar13;
  size_t var_28;
  char *var_45;
  type_8 *pdVar16;
  type_9 *pdVar17;
  int *var_67;
  type_9 *var_48;
  char *var_57;
  int *var_71;
  int var_50;
  int *var_68;
  type_8 *pdVar24;
  int var_10;
  type_9 *var_53;
  type_10 *var_13;
  type_7 *var_38;
  char var_44;
  type_7 *var_25;
  type_7 *var_39;
  bool var_26;
  bool var_40;
  bool var_64;
  bool var_65;
  type_7 bVar36;
  type_8 *var_23;
  type_1 *var_19;
  char *var_52;
  int var_69;
  int var_32;
  type_11 uStack_14;
  
  bVar36 = 0;
  uStack_14 = 0x66ca9;
  var_1(abfd->xvec->name);
  var_2(abfd);
  if (var_3 == (type_8 *)0x0) {
    var_3 = var_4();
  }
  for (var_5 = info->input_bfds; var_5 != (type_1 *)0x0; var_5 = (var_5->link).next) {
    var_7 = var_6(var_5,".drectve");
    if (var_7 != 0) {
      var_10 = *(int *)(var_7 + 0x2c);
      var_42 = (char *)var_8(var_10);
      var_9(var_5,var_7,var_42,0,0,var_10,var_10 >> 0x1f);
      var_11(var_3,var_42,var_10);
      var_12(var_42);
    }
  }
  var_13 = var_3->aligncomms;
joined_r0x00066d64:
  if (var_13 != (type_10 *)0x0) {
    do {
      var_7 = var_14(info->hash,var_13->symbol_name,0,0,0);
      if ((var_7 != 0) && (*(char *)(var_7 + 0xc) == '\x05')) {
        puVar1 = &var_13->alignment;
        if (**(type_3 **)(var_7 + 0x14) < *puVar1) goto code_r0x00066da5;
      }
      var_13 = var_13->next;
      if (var_13 == (type_10 *)0x0) break;
    } while( true );
  }
  var_15 = *(type_7 *)info;
  if ((var_15 & 2) == 0) {
    if (var_3->num_exports != 0) {
      if (var_16 != 0) goto LAB_00066fad;
      var_7 = var_3->num_exports;
      if (var_17 != 0) goto LAB_00066fde;
      goto LAB_000671fd;
    }
    pdVar24 = var_3;
    if ((var_16 != 0) && (var_18 == 0)) {
LAB_00066df0:
      var_19 = info->input_bfds;
      if (var_19 != (type_1 *)0x0) {
        var_22 = (type_6 *)(var_20 + 0xc0);
        while (var_7 = var_21(var_19), var_7 != 0) {
          if (0 < (int)var_19->symcount) {
            var_33 = var_19->outsymbols + var_19->symcount;
            var_23 = (type_8 *)var_19->outsymbols;
            do {
              while ((pbVar13 = *(type_4 **)var_23, pbVar13->section == var_22 ||
                     (((pbVar13->flags & 2) == 0 && (pbVar13->flags != 0))))) {
LAB_00066f48:
                var_23 = (type_8 *)((int)var_23 + 4);
                if ((type_8 *)var_33 == var_23) goto LAB_00067678;
              }
              var_40 = link_info.version_info == (type_12 *)0x0;
              if (!var_40) {
                var_7 = var_24(link_info.version_info,pbVar13->name);
                var_40 = var_7 == 0;
                if (!var_40) goto LAB_00066f48;
                pbVar13 = *(type_4 **)var_23;
              }
              var_26 = false;
              pdVar24 = (type_8 *)pbVar13->name;
              var_7 = 6;
              pdVar16 = pdVar24;
              var_25 = (type_7 *)0x1adaf4;
              do {
                if (var_7 == 0) break;
                var_7 = var_7 + -1;
                var_26 = *(type_7 *)&pdVar16->name < *var_25;
                var_40 = *(type_7 *)&pdVar16->name == *var_25;
                pdVar16 = (type_8 *)((int)pdVar16 + (type_3)bVar36 * -2 + 1);
                var_25 = var_25 + (type_3)bVar36 * -2 + 1;
              } while (var_40);
              if ((!var_26 && !var_40) == var_26) goto LAB_00066f48;
              var_28 = var_27((char *)pdVar24);
              var_42 = (char *)var_8(var_28 + 7);
              var_29(var_42,"%s%s","__imp_",pdVar24);
              var_7 = var_14(info->hash,var_42,0,0,0);
              var_12(var_42);
              if ((var_7 != 0) && (*(char *)(var_7 + 0xc) == '\x03')) goto LAB_00066f48;
              if (pe_details->underscored != 0) {
                pdVar24 = (type_8 *)((int)&pdVar24->name + (type_3)(*(char *)&pdVar24->name == '_'))
                ;
              }
              var_7 = var_30(var_19,(type_8 *)&var_3->num_exports,
                                   (char *)&var_3->exports,pdVar24);
              if (var_7 == 0) goto LAB_00066f48;
              var_32 = 0;
              var_48 = var_31(var_3,(char *)pdVar24,(char *)0x0,-1,(char *)0x0,
                                            &var_32);
              if (var_32 != 0) goto LAB_00066f48;
              var_34 = (type_4 **)((int)var_23 + 4);
              var_48->flag_data = ((type_7)((*(type_4 **)var_23)->flags >> 3) ^ 1) & 1;
              var_23 = (type_8 *)var_34;
            } while (var_33 != var_34);
          }
LAB_00067678:
          var_19 = (var_19->link).next;
          if (var_19 == (type_1 *)0x0) goto LAB_00066fbb;
        }
        var_42 = (char *)var_35(0,"%F%P: %pB: could not read symbols: %E\n",5);
        var_36(var_42,var_19);
        var_7 = var_3->num_exports;
        pdVar24 = var_3;
        goto joined_r0x00067b8d;
      }
LAB_00066fbb:
      var_7 = var_3->num_exports;
      pdVar24 = var_3;
      if (var_7 != 0) goto LAB_00066fd0;
      goto LAB_0006736e;
    }
LAB_00067375:
    if ((var_15 & 1) == 0) {
      return;
    }
  }
  else {
    if ((var_16 != 0) || (var_7 = var_3->num_exports, var_7 == 0)) {
LAB_00066fad:
      if (var_18 == 0) goto LAB_00066df0;
      goto LAB_00066fbb;
    }
LAB_00066fd0:
    if (var_17 == 0) {
LAB_000671fd:
      var_28 = var_3->num_exports;
      var_23 = var_3;
      if (var_37 == 0) goto LAB_00067212;
LAB_0006709d:
      var_40 = false;
      var_26 = var_28 == 0;
      if (0 < (int)var_28) {
        var_52 = (char *)0x0;
        var_19 = (type_1 *)0x0;
        do {
          var_25 = *(type_7 **)((int)&var_23->exports->name + (int)var_52);
          var_7 = 6;
          var_38 = var_25;
          var_39 = (type_7 *)0x1adaf4;
          do {
            if (var_7 == 0) break;
            var_7 = var_7 + -1;
            var_40 = *var_38 < *var_39;
            var_26 = *var_38 == *var_39;
            var_38 = var_38 + (type_3)bVar36 * -2 + 1;
            var_39 = var_39 + (type_3)bVar36 * -2 + 1;
          } while (var_26);
          if (((!var_40 && !var_26) != var_40) &&
             (var_42 = var_41((char *)var_25,0x40), var_42 != (char *)0x0)) {
            var_32 = 1;
            pdVar16 = (type_8 *)var_43(var_25 + (*var_25 == 0x40));
            var_42 = var_41((char *)pdVar16,0x40);
            pdVar24 = var_3;
            *var_42 = '\0';
            var_7 = var_30((type_1 *)0x0,(type_8 *)&pdVar24->num_exports,
                                 (char *)&pdVar24->exports,pdVar16);
            if (var_7 != 0) {
              var_31(var_3,(char *)pdVar16,
                                  *(char **)((int)&var_3->exports->internal_name +
                                            (int)var_52),-1,(char *)0x0,&var_32);
            }
            var_23 = var_3;
            if (var_32 != 0) {
              var_12(pdVar16);
              var_23 = var_3;
            }
          }
          var_19 = (type_1 *)((int)var_19 + 1);
          var_28 = var_23->num_exports;
          var_52 = (char *)((int)var_52 + 0x1c);
          var_40 = var_19 < var_28;
          var_26 = var_19 == (type_1 *)var_28;
        } while ((int)var_19 < (int)var_28);
        goto LAB_00067212;
      }
LAB_00067c38:
      var_7 = 0;
      var_10 = 0;
    }
    else {
LAB_00066fde:
      var_40 = false;
      var_10 = 0;
      var_23 = var_3;
      if (var_7 < 1) goto LAB_000671fd;
      do {
        var_42 = var_23->exports[var_10].name;
        var_44 = *var_42;
        if ((var_44 != '?') && (var_45 = var_41(var_42,0x40), var_45 != (char *)0x0)) {
          var_42 = (char *)var_43(var_42 + (var_44 == '@'));
          var_45 = var_46(var_42,0x40);
          if (var_45 == (char *)0x0) {
            var_45 = var_3->exports[var_10].name;
            var_57 = (char *)var_35(0,"%X%P: cannot export %s: invalid export name\n",5);
            var_36(var_57,var_45);
          }
          else {
            *var_45 = '\0';
          }
          var_23 = var_3;
          var_40 = true;
          var_3->exports[var_10].name = var_42;
        }
        var_28 = var_23->num_exports;
        var_10 = var_10 + 1;
      } while (var_10 < (int)var_28);
      if (var_40) {
        var_47(var_23->exports,var_28,0x1c,pe_export_sort);
        var_23 = var_3;
        var_28 = var_3->num_exports;
      }
      if (var_37 != 0) goto LAB_0006709d;
LAB_00067212:
      pdVar24 = var_23;
      var_48 = var_23->exports;
      if ((int)var_28 < 1) goto LAB_00067c38;
      var_23 = (type_8 *)0x0;
      var_10 = 0;
      var_53 = var_48;
      do {
        if (var_23 == (type_8 *)0x0) {
LAB_00067327:
          if ((type_8 *)var_10 != var_23) {
            pdVar17 = var_48 + var_10;
            pdVar17->name = var_53->name;
            pdVar17->internal_name = var_53->internal_name;
            pdVar17->its_name = var_53->its_name;
            pdVar17->ordinal = var_53->ordinal;
            pdVar17->hint = var_53->hint;
            var_44 = var_53->flag_constant;
            cVar5 = var_53->flag_noname;
            cVar6 = var_53->flag_data;
            pdVar17->flag_private = var_53->flag_private;
            pdVar17->flag_constant = var_44;
            pdVar17->flag_noname = cVar5;
            pdVar17->flag_data = cVar6;
            uVar7 = *(type_5 *)&var_53->field_0x19;
            pdVar17->flag_forward = var_53->flag_forward;
            *(type_5 *)&pdVar17->field_0x19 = uVar7;
          }
          var_10 = var_10 + 1;
        }
        else {
          var_52 = var_53->name;
          var_7 = var_49(var_52,var_53[-1].name);
          if (var_7 != 0) goto LAB_00067327;
          pdVar17 = var_48 + var_10 + -1;
          var_7 = pdVar17->ordinal;
          if (((var_7 == -1) || (var_50 = var_53->ordinal, var_50 == -1)) || (var_7 == var_50)) {
            if (var_51 != 0) {
              var_42 = pdVar17->name;
              var_45 = (char *)var_35(0,"%P: warning, duplicate EXPORT: %s\n",5);
              var_36(var_45,var_42);
              var_52 = var_53->name;
            }
LAB_00067748:
            var_50 = var_53->ordinal;
            if (var_50 != -1) goto LAB_000672a7;
          }
          else {
            if (var_51 != 0) {
              var_42 = pdVar17->name;
              var_45 = (char *)var_35(0,
                                          "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
                                          ,5);
              var_36(var_45,var_42,var_7,var_50);
              var_52 = var_53->name;
              goto LAB_00067748;
            }
LAB_000672a7:
            pdVar17->ordinal = var_50;
          }
          pdVar17->flag_private = pdVar17->flag_private | var_53->flag_private;
          pdVar17->flag_constant = pdVar17->flag_constant | var_53->flag_constant;
          pdVar17->flag_noname = pdVar17->flag_noname | var_53->flag_noname;
          pdVar17->flag_data = pdVar17->flag_data | var_53->flag_data;
          if (var_52 != (char *)0x0) {
            var_12(var_52);
          }
          if (var_53->internal_name != (char *)0x0) {
            var_12(var_53->internal_name);
          }
          pdVar24 = var_3;
          if (var_53->its_name != (char *)0x0) {
            var_12(var_53->its_name);
            pdVar24 = var_3;
          }
        }
        var_23 = (type_8 *)((int)var_23 + 1);
        var_53 = var_53 + 1;
      } while ((int)var_23 < pdVar24->num_exports);
      var_7 = var_10 * 8;
      var_23 = pdVar24;
    }
    var_23->num_exports = var_10;
    exported_symbol_offsets = (type_13 *)var_8(var_7);
    exported_symbol_sections = (type_6 **)var_8(var_3->num_exports << 2);
    pdVar24 = var_3;
    var_54(exported_symbol_sections,0,var_3->num_exports * 4);
    var_7 = pdVar24->num_exports;
    var_60 = 0;
    var_61 = 0x10000;
    var_58 = 0;
    var_59 = 0;
    var_62 = 0;
    if (0 < var_7) {
      var_23 = (type_8 *)0x0;
      do {
        var_42 = pdVar24->exports[(int)var_23].internal_name;
        var_55(var_42);
        var_28 = var_27(var_42);
        var_45 = (char *)var_8(var_28 + 2);
        if ((pe_details->underscored == 0) || (*var_42 == '@')) {
          var_56(var_45,var_42);
        }
        else {
          *var_45 = '_';
          var_56(var_45 + 1,var_42);
          var_57 = (char *)var_43(var_45);
          var_55(var_57);
        }
        var_7 = var_14(info->hash,var_45,0,0,1);
        pdVar24 = var_3;
        if (var_7 == 0) {
          var_57 = var_41(var_42,0x2e);
          if (var_57 != (char *)0x0) {
LAB_00067968:
            pdVar24 = var_3;
            var_58 = var_58 + 1;
            var_48 = var_3->exports + (int)var_23;
            if (var_48->flag_noname == '\0') {
              var_59 = var_59 + 1;
            }
            var_48->flag_forward = '\x01';
            goto LAB_00067863;
          }
          var_57 = "%X%P: cannot export %s: symbol not found\n";
LAB_000679ab:
          var_57 = (char *)var_35(0,var_57,5);
          var_36(var_57,var_42);
          pdVar24 = var_3;
        }
        else {
          var_44 = *(char *)(var_7 + 0xc);
          if ((var_44 - 3U & 0xfd) == 0) {
            var_58 = var_58 + 1;
            var_48 = var_3->exports + (int)var_23;
            if (var_48->flag_noname == '\0') {
              var_59 = var_59 + 1;
            }
            if (var_44 == '\x03') {
              exported_symbol_sections[(int)var_23] = *(type_6 **)(var_7 + 0x14);
            }
            else {
              exported_symbol_sections[(int)var_23] =
                   (type_6 *)(*(type_6 **)(var_7 + 0x14))->id;
            }
LAB_00067863:
            var_7 = var_48->ordinal;
            if (var_7 != -1) {
              if (var_60 < var_7) {
                var_60 = var_7;
              }
              if (var_7 < var_61) {
                var_61 = var_7;
              }
              var_62 = var_62 + 1;
            }
          }
          else {
            var_57 = var_41(var_42,0x2e);
            if (var_57 != (char *)0x0) goto LAB_00067968;
            if (var_44 == '\x01') {
              var_57 = "%X%P: cannot export %s: symbol not defined\n";
              goto LAB_000679ab;
            }
            var_57 = (char *)var_35(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5
                                       );
            var_36(var_57,var_42,var_44,3);
            pdVar24 = var_3;
          }
        }
        var_12(var_45);
        var_23 = (type_8 *)((int)var_23 + 1);
        var_7 = pdVar24->num_exports;
      } while ((int)var_23 < var_7);
    }
joined_r0x00067b8d:
    if (var_7 == 0) {
LAB_0006736e:
      var_15 = *(type_7 *)info;
      goto LAB_00067375;
    }
  }
  var_63 = pdVar24->name;
  if (var_63 == (char *)0x0) {
    var_63 = abfd->filename;
    var_44 = *var_63;
    if (var_44 != '\0') {
      var_40 = false;
      var_45 = var_63;
      var_42 = var_63;
      do {
        var_26 = var_44 == '\\';
        var_64 = var_44 == '/';
        var_65 = var_44 == ':';
        var_45 = var_45 + 1;
        var_44 = *var_45;
        if ((var_26 || var_64) || var_65) {
          var_40 = (var_26 || var_64) || var_65;
          var_42 = var_45;
        }
      } while (var_44 != '\0');
      if (var_40) {
        var_63 = var_42;
      }
    }
  }
  if ((var_62 == 0) || (var_60 <= var_58)) {
    var_61 = 1;
    var_60 = var_58;
  }
  else {
    var_7 = (var_60 - var_58) + 1;
    if (var_7 < var_61) {
      var_61 = var_7;
    }
  }
  var_66 = (var_60 - var_61) + 1;
  var_67 = (int *)var_8(var_66 * 4);
  var_68 = var_67 + var_66;
  var_70 = var_67;
  if (0 < var_66) {
    do {
      *var_67 = -1;
      var_67 = var_67 + 1;
    } while (var_68 != var_67);
  }
  var_23 = var_3;
  var_69 = var_61;
  if (var_3->num_exports < 1) {
    var_19 = (type_1 *)0x0;
    var_7 = var_61;
    goto LAB_00067580;
  }
  var_19 = (type_1 *)0x0;
  var_52 = (char *)0x0;
  var_48 = var_3->exports;
  do {
    var_53 = var_48 + (int)var_52;
    if ((exported_symbol_sections[(int)var_52] == (type_6 *)0x0) &&
       (var_53->flag_forward == '\0')) {
      var_48 = var_23->exports;
      var_53 = var_48 + (int)var_52;
    }
    else {
      var_7 = var_53->ordinal;
      if (var_7 != -1) {
        var_10 = var_7 - var_69;
        var_68 = var_70 + var_10;
        if (*var_68 != -1) {
          var_42 = var_53->name;
          var_45 = var_48[*var_68].name;
          var_57 = (char *)var_35(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);
          var_36(var_57,var_7,var_42,var_45);
          var_69 = var_61;
          var_68 = var_70 + var_10;
          var_23 = var_3;
        }
        *var_68 = (int)var_52;
      }
      var_48 = var_23->exports;
      var_53 = var_48 + (int)var_52;
      if (var_53->its_name == (char *)0x0) {
        var_28 = var_27(var_53->name);
        var_19 = (type_1 *)(var_28 + (int)var_19 + 1);
      }
      else {
        var_28 = var_27(var_53->its_name);
        var_19 = (type_1 *)(var_28 + (int)var_19 + 1);
      }
    }
    if (var_53->flag_forward != '\0') {
      var_28 = var_27(var_53->internal_name);
      var_19 = (type_1 *)((int)var_19 + 1 + var_28);
    }
    ppbVar8 = exported_symbol_sections;
    var_68 = var_70;
    var_52 = (char *)((int)var_52 + 1);
  } while ((int)var_52 < var_23->num_exports);
  var_7 = var_69;
  if (var_23->num_exports < 1) goto LAB_00067580;
  var_10 = 0;
  var_67 = &var_48->ordinal;
  do {
    if (ppbVar8[var_10] == (type_6 *)0x0) {
      if (*(char *)(var_67 + 3) != '\0') {
        var_50 = *var_67;
        goto joined_r0x000676c3;
      }
    }
    else {
      var_50 = *var_67;
joined_r0x000676c3:
      if (var_50 == -1) {
        var_71 = var_68 + (var_7 - var_69);
        if (*var_71 != -1) {
          var_7 = var_7 + 1;
          var_71 = var_68 + (var_7 - var_69);
          while (*var_71 != -1) {
            var_7 = var_7 + 1;
            var_71 = var_71 + 1;
          }
        }
        *var_71 = var_10;
        *var_67 = var_7;
      }
    }
    var_10 = var_10 + 1;
    var_67 = var_67 + 7;
    if (var_23->num_exports <= var_10) {
LAB_00067580:
      var_10 = var_60;
      if ((0xffff < var_60) || (0xffff < var_7)) {
        var_42 = (char *)var_35(0,"%X%P: error: export ordinal too large: %d\n",5);
        if (var_7 <= var_10) {
          var_7 = var_10;
        }
        var_36(var_42,var_7);
      }
      var_7 = var_59;
      var_28 = var_27(var_63);
      edata_sz = (int)var_19 + var_7 * 6 + 0x29 + var_66 * 4 + var_28;
      var_72(1);
      var_2(filler_bfd);
      return;
    }
  } while( true );
code_r0x00066da5:
  var_13 = var_13->next;
  **(type_3 **)(var_7 + 0x14) = *puVar1;
  goto joined_r0x00066d64;
}


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

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

void MASKED(undefined4 *param_1,byte *param_2)

{
  uint *puVar1;
  byte bVar2;
  int iVar3;
  void *pvVar4;
  undefined *puVar5;
  int iVar6;
  size_t sVar7;
  char *pcVar8;
  char *pcVar9;
  undefined4 *puVar10;
  undefined4 *puVar11;
  undefined4 uVar12;
  int *piVar13;
  undefined4 uVar14;
  char *pcVar15;
  undefined4 uVar16;
  int *piVar17;
  int iVar18;
  byte *pbVar19;
  byte *pbVar20;
  int iVar21;
  char cVar22;
  byte *pbVar23;
  undefined4 *puVar24;
  bool bVar25;
  bool bVar26;
  bool bVar27;
  bool bVar28;
  byte bVar29;
  int *local_48;
  uint local_44;
  char *local_40;
  int local_3c;
  int local_20 [3];
  undefined4 uStack_14;
  
  bVar29 = 0;
  uStack_14 = 0x66ca9;
  FUN_00063a00(*(undefined4 *)param_1[1]);
  FUN_00066c30(param_1);
  if (DAT_001d1218 == (undefined4 *)0x0) {
    DAT_001d1218 = (undefined4 *)FUN_000589a0();
  }
  for (iVar6 = *(int *)(param_2 + 0x3c); iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x9c)) {
    iVar3 = bfd_get_section_by_name(iVar6,".drectve");
    if (iVar3 != 0) {
      iVar18 = *(int *)(iVar3 + 0x2c);
      pvVar4 = (void *)xmalloc(iVar18);
      bfd_get_section_contents(iVar6,iVar3,pvVar4,0,0,iVar18,iVar18 >> 0x1f);
      FUN_0005a570(DAT_001d1218,pvVar4,iVar18);
      free(pvVar4);
    }
  }
  piVar13 = (int *)DAT_001d1218[0x12];
joined_r0x00066d64:
  if (piVar13 != (int *)0x0) {
    do {
      iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),piVar13[1],0,0,0);
      if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x05')) {
        puVar1 = (uint *)(piVar13 + 2);
        if (**(uint **)(iVar6 + 0x14) < *puVar1) goto code_r0x00066da5;
      }
      piVar13 = (int *)*piVar13;
      if (piVar13 == (int *)0x0) break;
    } while( true );
  }
  bVar2 = *param_2;
  if ((bVar2 & 2) == 0) {
    if (DAT_001d1218[0xb] != 0) {
      if (DAT_001d1214 != 0) goto LAB_00066fad;
      iVar6 = DAT_001d1218[0xb];
      if (DAT_001d120c != 0) goto LAB_00066fde;
      goto LAB_000671fd;
    }
    puVar24 = DAT_001d1218;
    if ((DAT_001d1214 != 0) && (DAT_001d1210 == 0)) {
LAB_00066df0:
      local_44 = *(uint *)(param_2 + 0x3c);
      if (local_44 != 0) {
        puVar5 = PTR__bfd_std_section_001cefbc + 0xc0;
        while (iVar6 = bfd_generic_link_read_symbols(local_44), iVar6 != 0) {
          if (0 < *(int *)(local_44 + 0x7c)) {
            piVar13 = *(int **)(local_44 + 0x78) + *(int *)(local_44 + 0x7c);
            local_48 = *(int **)(local_44 + 0x78);
            do {
              while ((iVar6 = *local_48, *(undefined **)(iVar6 + 0x14) == puVar5 ||
                     (((*(uint *)(iVar6 + 0x10) & 2) == 0 && (*(uint *)(iVar6 + 0x10) != 0))))) {
LAB_00066f48:
                local_48 = local_48 + 1;
                if (piVar13 == local_48) goto LAB_00067678;
              }
              bVar26 = DAT_001d1478 == 0;
              if (!bVar26) {
                iVar6 = bfd_hide_sym_by_version(DAT_001d1478,*(undefined4 *)(iVar6 + 4));
                bVar26 = iVar6 == 0;
                if (!bVar26) goto LAB_00066f48;
                iVar6 = *local_48;
              }
              bVar25 = false;
              pbVar19 = *(byte **)(iVar6 + 4);
              iVar6 = 6;
              pbVar20 = pbVar19;
              pbVar23 = (byte *)0x1adaf4;
              do {
                if (iVar6 == 0) break;
                iVar6 = iVar6 + -1;
                bVar25 = *pbVar20 < *pbVar23;
                bVar26 = *pbVar20 == *pbVar23;
                pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;
                pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;
              } while (bVar26);
              if ((!bVar25 && !bVar26) == bVar25) goto LAB_00066f48;
              sVar7 = strlen((char *)pbVar19);
              pcVar8 = (char *)xmalloc(sVar7 + 7);
              sprintf(pcVar8,"%s%s","__imp_",pbVar19);
              iVar6 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar8,0,0,0);
              free(pcVar8);
              if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) goto LAB_00066f48;
              if (*(int *)(DAT_001d127c + 0x14) != 0) {
                pbVar19 = pbVar19 + (*pbVar19 == 0x5f);
              }
              iVar6 = FUN_00062820(pbVar19);
              if (iVar6 == 0) goto LAB_00066f48;
              local_20[0] = 0;
              iVar6 = FUN_00058c90(DAT_001d1218,pbVar19,0,0xffffffff,0,local_20);
              if (local_20[0] != 0) goto LAB_00066f48;
              piVar17 = local_48 + 1;
              *(byte *)(iVar6 + 0x17) = ((byte)(*(uint *)(*local_48 + 0x10) >> 3) ^ 1) & 1;
              local_48 = piVar17;
            } while (piVar13 != piVar17);
          }
LAB_00067678:
          local_44 = *(int *)(local_44 + 0x9c);
          if (local_44 == 0) goto LAB_00066fbb;
        }
        uVar14 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);
        FUN_00034d20(uVar14,local_44);
        iVar6 = DAT_001d1218[0xb];
        puVar24 = DAT_001d1218;
        goto joined_r0x00067b8d;
      }
LAB_00066fbb:
      iVar6 = DAT_001d1218[0xb];
      puVar24 = DAT_001d1218;
      if (iVar6 != 0) goto LAB_00066fd0;
      goto LAB_0006736e;
    }
LAB_00067375:
    if ((bVar2 & 1) == 0) {
      return;
    }
  }
  else {
    if ((DAT_001d1214 != 0) || (iVar6 = DAT_001d1218[0xb], iVar6 == 0)) {
LAB_00066fad:
      if (DAT_001d1210 == 0) goto LAB_00066df0;
      goto LAB_00066fbb;
    }
LAB_00066fd0:
    if (DAT_001d120c == 0) {
LAB_000671fd:
      sVar7 = DAT_001d1218[0xb];
      local_48 = DAT_001d1218;
      if (DAT_001d1208 == 0) goto LAB_00067212;
LAB_0006709d:
      bVar26 = false;
      bVar25 = sVar7 == 0;
      if (0 < (int)sVar7) {
        local_40 = (char *)0x0;
        local_44 = 0;
        do {
          pbVar19 = *(byte **)(local_48[0xc] + (int)local_40);
          iVar6 = 6;
          pbVar20 = pbVar19;
          pbVar23 = (byte *)0x1adaf4;
          do {
            if (iVar6 == 0) break;
            iVar6 = iVar6 + -1;
            bVar26 = *pbVar20 < *pbVar23;
            bVar25 = *pbVar20 == *pbVar23;
            pbVar20 = pbVar20 + (uint)bVar29 * -2 + 1;
            pbVar23 = pbVar23 + (uint)bVar29 * -2 + 1;
          } while (bVar25);
          if (((!bVar26 && !bVar25) != bVar26) &&
             (pcVar8 = strchr((char *)pbVar19,0x40), pcVar8 != (char *)0x0)) {
            local_20[0] = 1;
            pcVar8 = (char *)xstrdup(pbVar19 + (*pbVar19 == 0x40));
            pcVar9 = strchr(pcVar8,0x40);
            *pcVar9 = '\0';
            iVar6 = FUN_00062820(pcVar8);
            if (iVar6 != 0) {
              FUN_00058c90(DAT_001d1218,pcVar8,
                           *(undefined4 *)(DAT_001d1218[0xc] + 4 + (int)local_40),0xffffffff,0,
                           local_20);
            }
            local_48 = DAT_001d1218;
            if (local_20[0] != 0) {
              free(pcVar8);
              local_48 = DAT_001d1218;
            }
          }
          local_44 = local_44 + 1;
          sVar7 = local_48[0xb];
          local_40 = (char *)((int)local_40 + 0x1c);
          bVar26 = local_44 < sVar7;
          bVar25 = local_44 == sVar7;
        } while ((int)local_44 < (int)sVar7);
        goto LAB_00067212;
      }
LAB_00067c38:
      iVar6 = 0;
      iVar3 = 0;
    }
    else {
LAB_00066fde:
      bVar26 = false;
      iVar3 = 0;
      local_48 = DAT_001d1218;
      if (iVar6 < 1) goto LAB_000671fd;
      do {
        iVar6 = iVar3 * 0x1c;
        pcVar8 = *(char **)(local_48[0xc] + iVar6);
        cVar22 = *pcVar8;
        if ((cVar22 != '?') && (pcVar9 = strchr(pcVar8,0x40), pcVar9 != (char *)0x0)) {
          pcVar8 = (char *)xstrdup(pcVar8 + (cVar22 == '@'));
          pcVar9 = strrchr(pcVar8,0x40);
          if (pcVar9 == (char *)0x0) {
            uVar14 = *(undefined4 *)(DAT_001d1218[0xc] + iVar6);
            uVar16 = dcgettext(0,"%X%P: cannot export %s: invalid export name\n",5);
            FUN_00034d20(uVar16,uVar14);
          }
          else {
            *pcVar9 = '\0';
          }
          local_48 = DAT_001d1218;
          bVar26 = true;
          *(char **)(DAT_001d1218[0xc] + iVar6) = pcVar8;
        }
        sVar7 = local_48[0xb];
        iVar3 = iVar3 + 1;
      } while (iVar3 < (int)sVar7);
      if (bVar26) {
        qsort((void *)local_48[0xc],sVar7,0x1c,FUN_00061720);
        local_48 = DAT_001d1218;
        sVar7 = DAT_001d1218[0xb];
      }
      if (DAT_001d1208 != 0) goto LAB_0006709d;
LAB_00067212:
      piVar13 = local_48;
      puVar24 = (undefined4 *)local_48[0xc];
      if ((int)sVar7 < 1) goto LAB_00067c38;
      local_48 = (int *)0x0;
      iVar3 = 0;
      puVar11 = puVar24;
      do {
        if (local_48 == (int *)0x0) {
LAB_00067327:
          if ((int *)iVar3 != local_48) {
            puVar10 = puVar24 + iVar3 * 7;
            *puVar10 = *puVar11;
            puVar10[1] = puVar11[1];
            puVar10[2] = puVar11[2];
            puVar10[3] = puVar11[3];
            puVar10[4] = puVar11[4];
            puVar10[5] = puVar11[5];
            puVar10[6] = puVar11[6];
          }
          iVar3 = iVar3 + 1;
        }
        else {
          local_40 = (char *)*puVar11;
          iVar6 = strcmp(local_40,(char *)puVar11[-7]);
          if (iVar6 != 0) goto LAB_00067327;
          puVar10 = puVar24 + iVar3 * 7 + -7;
          iVar6 = puVar10[3];
          if (((iVar6 == -1) || (iVar18 = puVar11[3], iVar18 == -1)) || (iVar6 == iVar18)) {
            if (DAT_001d1204 != 0) {
              uVar14 = *puVar10;
              uVar16 = dcgettext(0,"%P: warning, duplicate EXPORT: %s\n",5);
              FUN_00034d20(uVar16,uVar14);
              local_40 = (char *)*puVar11;
            }
LAB_00067748:
            iVar18 = puVar11[3];
            if (iVar18 != -1) goto LAB_000672a7;
          }
          else {
            if (DAT_001d1204 != 0) {
              uVar14 = *puVar10;
              uVar16 = dcgettext(0,"%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n",5)
              ;
              FUN_00034d20(uVar16,uVar14,iVar6,iVar18);
              local_40 = (char *)*puVar11;
              goto LAB_00067748;
            }
LAB_000672a7:
            puVar10[3] = iVar18;
          }
          *(byte *)(puVar10 + 5) = *(byte *)(puVar10 + 5) | *(byte *)(puVar11 + 5);
          *(byte *)((int)puVar10 + 0x15) =
               *(byte *)((int)puVar10 + 0x15) | *(byte *)((int)puVar11 + 0x15);
          *(byte *)((int)puVar10 + 0x16) =
               *(byte *)((int)puVar10 + 0x16) | *(byte *)((int)puVar11 + 0x16);
          *(byte *)((int)puVar10 + 0x17) =
               *(byte *)((int)puVar10 + 0x17) | *(byte *)((int)puVar11 + 0x17);
          if (local_40 != (char *)0x0) {
            free(local_40);
          }
          if ((void *)puVar11[1] != (void *)0x0) {
            free((void *)puVar11[1]);
          }
          piVar13 = DAT_001d1218;
          if ((void *)puVar11[2] != (void *)0x0) {
            free((void *)puVar11[2]);
            piVar13 = DAT_001d1218;
          }
        }
        local_48 = (int *)((int)local_48 + 1);
        puVar11 = puVar11 + 7;
      } while ((int)local_48 < piVar13[0xb]);
      iVar6 = iVar3 * 8;
      local_48 = piVar13;
    }
    local_48[0xb] = iVar3;
    DAT_001d1278 = xmalloc(iVar6);
    DAT_001d1274 = (void *)xmalloc(DAT_001d1218[0xb] << 2);
    puVar24 = DAT_001d1218;
    memset(DAT_001d1274,0,DAT_001d1218[0xb] * 4);
    iVar6 = puVar24[0xb];
    DAT_001d1258 = 0;
    DAT_001d125c = 0x10000;
    DAT_001d126c = 0;
    DAT_001d1268 = 0;
    DAT_001d1264 = 0;
    if (0 < iVar6) {
      local_48 = (int *)0x0;
      do {
        iVar6 = (int)local_48 * 0x1c;
        pcVar8 = *(char **)(puVar24[0xc] + 4 + iVar6);
        FUN_00028f70(pcVar8);
        sVar7 = strlen(pcVar8);
        pcVar9 = (char *)xmalloc(sVar7 + 2);
        if ((*(int *)(DAT_001d127c + 0x14) == 0) || (*pcVar8 == '@')) {
          strcpy(pcVar9,pcVar8);
        }
        else {
          *pcVar9 = '_';
          strcpy(pcVar9 + 1,pcVar8);
          uVar14 = xstrdup(pcVar9);
          FUN_00028f70(uVar14);
        }
        iVar3 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),pcVar9,0,0,1);
        puVar24 = DAT_001d1218;
        if (iVar3 == 0) {
          pcVar15 = strchr(pcVar8,0x2e);
          if (pcVar15 != (char *)0x0) {
LAB_00067968:
            puVar24 = DAT_001d1218;
            DAT_001d126c = DAT_001d126c + 1;
            iVar6 = iVar6 + DAT_001d1218[0xc];
            if (*(char *)(iVar6 + 0x16) == '\0') {
              DAT_001d1268 = DAT_001d1268 + 1;
            }
            *(undefined1 *)(iVar6 + 0x18) = 1;
            goto LAB_00067863;
          }
          pcVar15 = "%X%P: cannot export %s: symbol not found\n";
LAB_000679ab:
          uVar14 = dcgettext(0,pcVar15,5);
          FUN_00034d20(uVar14,pcVar8);
          puVar24 = DAT_001d1218;
        }
        else {
          cVar22 = *(char *)(iVar3 + 0xc);
          if ((cVar22 - 3U & 0xfd) == 0) {
            DAT_001d126c = DAT_001d126c + 1;
            iVar6 = iVar6 + DAT_001d1218[0xc];
            if (*(char *)(iVar6 + 0x16) == '\0') {
              DAT_001d1268 = DAT_001d1268 + 1;
            }
            piVar13 = (int *)((int)DAT_001d1274 + (int)local_48 * 4);
            if (cVar22 == '\x03') {
              *piVar13 = *(int *)(iVar3 + 0x14);
            }
            else {
              *piVar13 = *(int *)(*(int *)(iVar3 + 0x14) + 4);
            }
LAB_00067863:
            iVar6 = *(int *)(iVar6 + 0xc);
            if (iVar6 != -1) {
              if (DAT_001d1258 < iVar6) {
                DAT_001d1258 = iVar6;
              }
              if (iVar6 < DAT_001d125c) {
                DAT_001d125c = iVar6;
              }
              DAT_001d1264 = DAT_001d1264 + 1;
            }
          }
          else {
            pcVar15 = strchr(pcVar8,0x2e);
            if (pcVar15 != (char *)0x0) goto LAB_00067968;
            if (cVar22 == '\x01') {
              pcVar15 = "%X%P: cannot export %s: symbol not defined\n";
              goto LAB_000679ab;
            }
            uVar14 = dcgettext(0,"%X%P: cannot export %s: symbol wrong type (%d vs %d)\n",5);
            FUN_00034d20(uVar14,pcVar8,cVar22,3);
            puVar24 = DAT_001d1218;
          }
        }
        free(pcVar9);
        local_48 = (int *)((int)local_48 + 1);
        iVar6 = puVar24[0xb];
      } while ((int)local_48 < iVar6);
    }
joined_r0x00067b8d:
    if (iVar6 == 0) {
LAB_0006736e:
      bVar2 = *param_2;
      goto LAB_00067375;
    }
  }
  DAT_001d1260 = (char *)*puVar24;
  if (DAT_001d1260 == (char *)0x0) {
    DAT_001d1260 = (char *)*param_1;
    cVar22 = *DAT_001d1260;
    if (cVar22 != '\0') {
      bVar26 = false;
      pcVar9 = DAT_001d1260;
      pcVar8 = DAT_001d1260;
      do {
        bVar25 = cVar22 == '\\';
        bVar27 = cVar22 == '/';
        bVar28 = cVar22 == ':';
        pcVar9 = pcVar9 + 1;
        cVar22 = *pcVar9;
        if ((bVar25 || bVar27) || bVar28) {
          bVar26 = (bVar25 || bVar27) || bVar28;
          pcVar8 = pcVar9;
        }
      } while (cVar22 != '\0');
      if (bVar26) {
        DAT_001d1260 = pcVar8;
      }
    }
  }
  if ((DAT_001d1264 == 0) || (DAT_001d1258 <= DAT_001d126c)) {
    DAT_001d125c = 1;
    DAT_001d1258 = DAT_001d126c;
  }
  else {
    iVar6 = (DAT_001d1258 - DAT_001d126c) + 1;
    if (iVar6 < DAT_001d125c) {
      DAT_001d125c = iVar6;
    }
  }
  DAT_001d1270 = (DAT_001d1258 - DAT_001d125c) + 1;
  puVar11 = (undefined4 *)xmalloc(DAT_001d1270 * 4);
  puVar24 = puVar11 + DAT_001d1270;
  DAT_001d1254 = puVar11;
  if (0 < DAT_001d1270) {
    do {
      *puVar11 = 0xffffffff;
      puVar11 = puVar11 + 1;
    } while (puVar24 != puVar11);
  }
  local_48 = DAT_001d1218;
  local_3c = DAT_001d125c;
  if ((int)DAT_001d1218[0xb] < 1) {
    local_44 = 0;
    iVar6 = DAT_001d125c;
    goto LAB_00067580;
  }
  local_44 = 0;
  local_40 = (char *)0x0;
  iVar3 = DAT_001d1218[0xc];
  do {
    iVar6 = (int)local_40 * 0x1c;
    puVar24 = (undefined4 *)(iVar3 + iVar6);
    if ((*(int *)((int)DAT_001d1274 + (int)local_40 * 4) == 0) && (*(char *)(puVar24 + 6) == '\0'))
    {
      iVar3 = local_48[0xc];
      puVar24 = (undefined4 *)(iVar6 + iVar3);
    }
    else {
      iVar18 = puVar24[3];
      if (iVar18 != -1) {
        iVar21 = iVar18 - local_3c;
        piVar13 = DAT_001d1254 + iVar21;
        if (*piVar13 != -1) {
          uVar14 = *puVar24;
          uVar16 = *(undefined4 *)(iVar3 + *piVar13 * 0x1c);
          uVar12 = dcgettext(0,"%X%P: error: ordinal used twice: %d (%s vs %s)\n",5);
          FUN_00034d20(uVar12,iVar18,uVar14,uVar16);
          local_3c = DAT_001d125c;
          piVar13 = DAT_001d1254 + iVar21;
          local_48 = DAT_001d1218;
        }
        *piVar13 = (int)local_40;
      }
      iVar3 = local_48[0xc];
      puVar24 = (undefined4 *)(iVar6 + iVar3);
      if ((char *)puVar24[2] == (char *)0x0) {
        sVar7 = strlen((char *)*puVar24);
        local_44 = sVar7 + local_44 + 1;
      }
      else {
        sVar7 = strlen((char *)puVar24[2]);
        local_44 = sVar7 + local_44 + 1;
      }
    }
    if (*(char *)(puVar24 + 6) != '\0') {
      sVar7 = strlen((char *)puVar24[1]);
      local_44 = local_44 + 1 + sVar7;
    }
    pvVar4 = DAT_001d1274;
    puVar24 = DAT_001d1254;
    local_40 = (char *)((int)local_40 + 1);
  } while ((int)local_40 < local_48[0xb]);
  iVar6 = local_3c;
  if (local_48[0xb] < 1) goto LAB_00067580;
  iVar18 = 0;
  piVar13 = (int *)(iVar3 + 0xc);
  do {
    if (*(int *)((int)pvVar4 + iVar18 * 4) == 0) {
      if ((char)piVar13[3] != '\0') {
        iVar3 = *piVar13;
        goto joined_r0x000676c3;
      }
    }
    else {
      iVar3 = *piVar13;
joined_r0x000676c3:
      if (iVar3 == -1) {
        piVar17 = puVar24 + (iVar6 - local_3c);
        if (*piVar17 != -1) {
          iVar6 = iVar6 + 1;
          piVar17 = puVar24 + (iVar6 - local_3c);
          while (*piVar17 != -1) {
            iVar6 = iVar6 + 1;
            piVar17 = piVar17 + 1;
          }
        }
        *piVar17 = iVar18;
        *piVar13 = iVar6;
      }
    }
    iVar18 = iVar18 + 1;
    piVar13 = piVar13 + 7;
    if (local_48[0xb] <= iVar18) {
LAB_00067580:
      iVar3 = DAT_001d1258;
      if ((0xffff < DAT_001d1258) || (0xffff < iVar6)) {
        uVar14 = dcgettext(0,"%X%P: error: export ordinal too large: %d\n",5);
        if (iVar6 <= iVar3) {
          iVar6 = iVar3;
        }
        FUN_00034d20(uVar14,iVar6);
      }
      iVar6 = DAT_001d1268;
      sVar7 = strlen(DAT_001d1260);
      DAT_001d128c = local_44 + iVar6 * 6 + 0x29 + DAT_001d1270 * 4 + sVar7;
      FUN_00061a40();
      FUN_00066c30(DAT_001d12a0);
      return;
    }
  } while( true );
code_r0x00066da5:
  piVar13 = (int *)*piVar13;
  **(uint **)(iVar6 + 0x14) = *puVar1;
  goto joined_r0x00066d64;
}

