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

void pe_process_import_defs(bfd *output_bfd,bfd_link_info *linfo)

{
  char *pcVar1;
  key_value *pkVar2;
  byte bVar3;
  char cVar4;
  def_file_import *pdVar5;
  def_file_module *pdVar6;
  bool bVar7;
  key_value *pkVar8;
  undefined *puVar9;
  def_file_module **ppdVar10;
  byte *__ptr;
  size_t sVar11;
  char *__dest;
  char *pcVar12;
  char *pcVar13;
  char *pcVar14;
  bfd *pbVar15;
  byte *pbVar16;
  key_value *pkVar17;
  uint uVar18;
  uint uVar19;
  int iVar20;
  uint uVar21;
  uint uVar22;
  bool bVar23;
  key_value *local_78;
  def_file_import *local_74;
  int local_70;
  def_file_module *local_68;
  def_file_module **local_64;
  def_file_export exp;
  
  pe_dll_id_target(output_bfd->xvec->name);
  if (pe_def_file != (def_file *)0x0) {
    pdVar5 = pe_def_file->imports;
    pcVar1 = "";
    undef_count = 0;
    bfd_link_hash_traverse(link_info.hash,pe_undef_count,"");
    udef_table = (key_value *)xmalloc(undef_count << 3);
    undef_count = 0;
    bfd_link_hash_traverse(link_info.hash,pe_undef_fill,"");
    qsort(udef_table,undef_count,8,undef_sort_cmp);
    puVar9 = PTR__sch_istable_001cefa0;
    for (local_68 = pe_def_file->modules; pkVar8 = udef_table, iVar20 = undef_count,
        local_68 != (def_file_module *)0x0; local_68 = local_68->next) {
LAB_000657a0:
      if (0 < pe_def_file->num_imports) {
        local_70 = 0;
        if (local_68 != pdVar5->module) {
          local_70 = 0;
          ppdVar10 = &pdVar5[1].module;
          do {
            local_70 = local_70 + 1;
            if (local_70 == pe_def_file->num_imports) goto LAB_000657df;
            pdVar6 = *ppdVar10;
            ppdVar10 = ppdVar10 + 6;
          } while (pdVar6 != local_68);
        }
        dll_filename = local_68->name;
        __ptr = (byte *)xstrdup(dll_filename);
        bVar3 = *__ptr;
        pbVar16 = __ptr;
        dll_symname = (char *)__ptr;
        while (bVar3 != 0) {
          if ((puVar9[(uint)bVar3 * 2] & 0x8c) == 0) {
            *pbVar16 = 0x5f;
          }
          pbVar16 = pbVar16 + 1;
          bVar3 = *pbVar16;
        }
        if ((local_70 < pe_def_file->num_imports) &&
           (local_74 = pdVar5 + local_70, local_68 == local_74->module)) {
          local_64 = &pdVar5[local_70 + 1].module;
          bVar7 = false;
LAB_000658a0:
          cVar4 = *local_74->internal_name;
          sVar11 = strlen(local_74->internal_name);
          __dest = (char *)xmalloc(sVar11 + 8);
          if (cVar4 != '@') {
            pcVar13 = local_74->internal_name;
            pcVar12 = strchr(pcVar13,0x40);
            pcVar14 = "_";
            if (pe_details->underscored == 0) {
              pcVar14 = pcVar1;
            }
            sprintf(__dest,"%s%s",pcVar14,pcVar13);
            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);
            if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {
              if (pcVar12 != (char *)0x0) goto LAB_00065e00;
              uVar22 = 1;
              free(__dest);
              goto LAB_00065c0f;
            }
            pcVar13 = "_";
            if (pe_details->underscored == 0) {
              pcVar13 = pcVar1;
            }
            sprintf(__dest,"%s%s%s","__imp_",pcVar13,local_74->internal_name);
            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);
            if (iVar20 == 0) {
              bVar23 = false;
              if (pcVar12 != (char *)0x0) goto LAB_00065dc0;
            }
            else {
              bVar23 = *(char *)(iVar20 + 0xc) == '\x01';
              if ((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))
              goto LAB_00065d23;
            }
            pcVar13 = "_";
            if (pe_details->underscored == 0) {
              pcVar13 = pcVar1;
            }
            sprintf(__dest,"%s%s",pcVar13,local_74->internal_name);
            sVar11 = strlen(__dest);
            pcVar13 = (char *)xmalloc(sVar11 + 3);
            strcpy(pcVar13,__dest);
            pcVar14 = strchr(pcVar13 + (*pcVar13 == '@'),0x40);
            if (pcVar14 != (char *)0x0) {
              pcVar14[1] = '\0';
            }
            pkVar8 = udef_table;
            uVar22 = 0;
            uVar18 = undef_count;
            while (uVar22 < uVar18) {
              while( true ) {
                uVar19 = uVar22 + uVar18 >> 1;
                iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);
                if (-1 < iVar20) break;
                uVar18 = uVar19;
                if (uVar19 <= uVar22) goto LAB_00065a75;
              }
              if (iVar20 == 0) {
                iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);
                if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;
                break;
              }
              uVar22 = uVar19 + 1;
            }
LAB_00065a75:
            uVar22 = undef_count;
            pkVar8 = udef_table;
            cVar4 = *pcVar13;
            if (cVar4 != '?') {
              local_78 = udef_table;
              if (pcVar14 == (char *)0x0) {
                if (cVar4 == '@') goto LAB_00065f40;
                sVar11 = strlen(pcVar13);
                (pcVar13 + sVar11)[0] = '@';
                (pcVar13 + sVar11)[1] = '\0';
                uVar18 = 0;
                while (uVar18 < uVar22) {
                  while( true ) {
                    uVar19 = uVar22 + uVar18 >> 1;
                    pkVar17 = pkVar8 + uVar19;
                    iVar20 = strcmp(pcVar13,pkVar17->key);
                    if (-1 < iVar20) break;
                    uVar22 = uVar19;
                    if (uVar19 <= uVar18) goto LAB_00065e95;
                  }
                  if (iVar20 == 0) {
                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);
                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;
                    cVar4 = *pcVar13;
                    goto joined_r0x00066040;
                  }
                  uVar18 = uVar19 + 1;
                }
LAB_00065e95:
                cVar4 = *pcVar13;
joined_r0x00066040:
                if ((cVar4 == '_') && (pe_details->underscored != 0)) {
                  *pcVar13 = '@';
                }
                else {
                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);
                  *pcVar13 = '@';
                }
                pkVar8 = udef_table;
                uVar22 = 0;
                uVar18 = undef_count;
                while (uVar22 < uVar18) {
                  while( true ) {
                    uVar19 = uVar18 + uVar22 >> 1;
                    pkVar17 = pkVar8 + uVar19;
                    iVar20 = strcmp(pcVar13,pkVar17->key);
                    if (-1 < iVar20) break;
                    uVar18 = uVar19;
                    if (uVar19 <= uVar22) goto LAB_00065b08;
                  }
                  if (iVar20 == 0) goto LAB_00065d30;
                  uVar22 = uVar19 + 1;
                }
              }
              else {
                if (cVar4 == '@') {
LAB_00065f40:
                  if (pe_details->underscored == 0) {
                    strcpy(pcVar13,pcVar13 + 1);
                  }
                  else {
                    *pcVar13 = '_';
                  }
                  uVar18 = 0;
                  uVar19 = uVar22;
                  while (uVar18 < uVar19) {
                    while( true ) {
                      uVar21 = uVar19 + uVar18 >> 1;
                      pkVar17 = pkVar8 + uVar21;
                      iVar20 = strcmp(pcVar13,pkVar17->key);
                      if (-1 < iVar20) break;
                      uVar19 = uVar21;
                      if (uVar21 <= uVar18) goto LAB_00065fad;
                    }
                    if (iVar20 == 0) {
                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);
                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;
                      local_78 = udef_table;
                      uVar22 = undef_count;
                      break;
                    }
                    uVar18 = uVar21 + 1;
                  }
LAB_00065fad:
                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;
                }
                else {
LAB_00065aa8:
                  pcVar14 = strchr(pcVar13,0x40);
                  *pcVar14 = '\0';
                }
                uVar18 = 0;
                while (uVar18 < uVar22) {
                  while( true ) {
                    uVar19 = uVar22 + uVar18 >> 1;
                    pkVar17 = local_78 + uVar19;
                    iVar20 = strcmp(pcVar13,pkVar17->key);
                    if (-1 < iVar20) break;
                    uVar22 = uVar19;
                    if (uVar19 <= uVar18) goto LAB_00065b08;
                  }
                  if (iVar20 == 0) goto LAB_00065d30;
                  uVar18 = uVar19 + 1;
                }
              }
            }
            goto LAB_00065b08;
          }
          strcpy(__dest,local_74->internal_name);
          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);
          if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {
LAB_00065e00:
            uVar22 = 1;
            free(__dest);
            goto LAB_00065c0f;
          }
          sprintf(__dest,"%s%s","__imp_",local_74->internal_name);
          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);
          if (iVar20 != 0) {
            bVar23 = *(char *)(iVar20 + 0xc) == '\x01';
LAB_00065d23:
            uVar22 = 0;
            goto LAB_00065b1c;
          }
LAB_00065dc0:
          free(__dest);
          goto LAB_00065b37;
        }
        goto LAB_00065b8f;
      }
LAB_000657df:
    }
joined_r0x00065bbb:
    while (pkVar17 = udef_table, iVar20 != 0) {
      iVar20 = iVar20 + -1;
      pkVar2 = udef_table + iVar20;
      udef_table = pkVar8;
      undef_count = iVar20;
      free(pkVar2->key);
      pkVar8 = udef_table;
      udef_table = pkVar17;
    }
    udef_table = pkVar8;
    free(pkVar17);
  }
  return;
LAB_00065d30:
  iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);
  if (*(char *)(iVar20 + 0xc) == '\x01') {
LAB_00065d58:
    uVar22 = 1;
    free(pcVar13);
    free(__dest);
  }
  else {
LAB_00065b08:
    uVar22 = 1;
    free(pcVar13);
LAB_00065b1c:
    free(__dest);
    if (!bVar23) goto LAB_00065b37;
  }
LAB_00065c0f:
  if (!bVar7) {
    pbVar15 = make_head(output_bfd);
    add_bfd_to_link(pbVar15,pbVar15->filename,linfo);
  }
  exp.internal_name = local_74->internal_name;
  exp.name = local_74->name;
  exp.its_name = local_74->its_name;
  exp.ordinal = local_74->ordinal;
  exp.hint = exp.ordinal;
  if (exp.ordinal < 0) {
    exp.hint = 0;
  }
  exp.flag_noname = exp.name == (char *)0x0;
  exp.flag_private = '\0';
  exp.flag_constant = '\0';
  exp.flag_data = (char)local_74->data;
  pbVar15 = make_one(&exp,output_bfd,exp.flag_data == '\0' & uVar22);
  add_bfd_to_link(pbVar15,pbVar15->filename,linfo);
  bVar7 = true;
LAB_00065b37:
  local_70 = local_70 + 1;
  if (pe_def_file->num_imports <= local_70) goto LAB_00065b67;
  local_74 = local_74 + 1;
  pdVar6 = *local_64;
  local_64 = local_64 + 6;
  if (pdVar6 != local_68) goto LAB_00065b67;
  goto LAB_000658a0;
LAB_00065b67:
  __ptr = (byte *)dll_symname;
  if (bVar7) {
    pbVar15 = make_tail(output_bfd);
    add_bfd_to_link(pbVar15,pbVar15->filename,linfo);
    __ptr = (byte *)dll_symname;
  }
LAB_00065b8f:
  free(__ptr);
  local_68 = local_68->next;
  pkVar8 = udef_table;
  iVar20 = undef_count;
  if (local_68 == (def_file_module *)0x0) goto joined_r0x00065bbb;
  goto LAB_000657a0;
}



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

void FUN_000656c0(int param_1,int param_2)

{
  char *pcVar1;
  byte bVar2;
  char cVar3;
  int iVar4;
  bool bVar5;
  void *pvVar6;
  undefined *puVar7;
  void *__ptr;
  int *piVar8;
  byte *__ptr_00;
  char *__dest;
  char *pcVar9;
  int iVar10;
  char *pcVar11;
  char *pcVar12;
  size_t sVar13;
  byte *pbVar14;
  undefined4 *puVar15;
  uint uVar16;
  size_t sVar17;
  uint uVar18;
  uint uVar19;
  bool bVar20;
  void *local_78;
  undefined4 *local_74;
  int local_70;
  undefined4 *local_68;
  undefined4 *local_64;
  
  FUN_00063a00(**(undefined4 **)(param_1 + 4));
  if (DAT_001d1218 != 0) {
    iVar4 = *(int *)(DAT_001d1218 + 0x3c);
    pcVar1 = "";
    DAT_001d1228 = 0;
    bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"");
    DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3);
    DAT_001d1228 = 0;
    bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"");
    qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0);
    puVar7 = PTR__sch_istable_001cefa0;
    for (local_68 = *(undefined4 **)(DAT_001d1218 + 0x34); pvVar6 = DAT_001d1224,
        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0; local_68 = (undefined4 *)*local_68) {
LAB_000657a0:
      if (0 < *(int *)(DAT_001d1218 + 0x38)) {
        local_70 = 0;
        if (local_68 != *(undefined4 **)(iVar4 + 4)) {
          local_70 = 0;
          piVar8 = (int *)(iVar4 + 0x1c);
          do {
            local_70 = local_70 + 1;
            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;
            puVar15 = (undefined4 *)*piVar8;
            piVar8 = piVar8 + 6;
          } while (puVar15 != local_68);
        }
        DAT_001d123c = local_68 + 2;
        __ptr_00 = (byte *)xstrdup(DAT_001d123c);
        bVar2 = *__ptr_00;
        pbVar14 = __ptr_00;
        DAT_001d1238 = __ptr_00;
        while (bVar2 != 0) {
          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {
            *pbVar14 = 0x5f;
          }
          pbVar14 = pbVar14 + 1;
          bVar2 = *pbVar14;
        }
        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {
          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);
          if (local_68 == (undefined4 *)local_74[1]) {
            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);
            bVar5 = false;
LAB_000658a0:
            cVar3 = *(char *)*local_74;
            sVar17 = strlen((char *)*local_74);
            __dest = (char *)xmalloc(sVar17 + 8);
            if (cVar3 != '@') {
              pcVar11 = (char *)*local_74;
              pcVar9 = strchr(pcVar11,0x40);
              pcVar12 = "_";
              if (*(int *)(DAT_001d127c + 0x14) == 0) {
                pcVar12 = pcVar1;
              }
              sprintf(__dest,"%s%s",pcVar12,pcVar11);
              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);
              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {
                if (pcVar9 != (char *)0x0) goto LAB_00065e00;
                free(__dest);
                goto LAB_00065c0f;
              }
              pcVar11 = "_";
              if (*(int *)(DAT_001d127c + 0x14) == 0) {
                pcVar11 = pcVar1;
              }
              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);
              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);
              if (iVar10 == 0) {
                bVar20 = false;
                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;
              }
              else {
                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';
                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))
                goto LAB_00065b1c;
              }
              pcVar11 = "_";
              if (*(int *)(DAT_001d127c + 0x14) == 0) {
                pcVar11 = pcVar1;
              }
              sprintf(__dest,"%s%s",pcVar11,*local_74);
              sVar17 = strlen(__dest);
              pcVar11 = (char *)xmalloc(sVar17 + 3);
              strcpy(pcVar11,__dest);
              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);
              if (pcVar12 != (char *)0x0) {
                pcVar12[1] = '\0';
              }
              pvVar6 = DAT_001d1224;
              uVar19 = 0;
              sVar17 = DAT_001d1228;
              while (uVar19 < sVar17) {
                while( true ) {
                  uVar16 = uVar19 + sVar17 >> 1;
                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);
                  iVar10 = strcmp(pcVar11,(char *)*puVar15);
                  if (-1 < iVar10) break;
                  sVar17 = uVar16;
                  if (uVar16 <= uVar19) goto LAB_00065a75;
                }
                if (iVar10 == 0) {
                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);
                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;
                  break;
                }
                uVar19 = uVar16 + 1;
              }
LAB_00065a75:
              sVar17 = DAT_001d1228;
              pvVar6 = DAT_001d1224;
              cVar3 = *pcVar11;
              if (cVar3 != '?') {
                local_78 = DAT_001d1224;
                if (pcVar12 == (char *)0x0) {
                  if (cVar3 == '@') goto LAB_00065f40;
                  sVar13 = strlen(pcVar11);
                  (pcVar11 + sVar13)[0] = '@';
                  (pcVar11 + sVar13)[1] = '\0';
                  uVar19 = 0;
                  while (uVar19 < sVar17) {
                    while( true ) {
                      uVar16 = sVar17 + uVar19 >> 1;
                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);
                      iVar10 = strcmp(pcVar11,(char *)*puVar15);
                      if (-1 < iVar10) break;
                      sVar17 = uVar16;
                      if (uVar16 <= uVar19) goto LAB_00065e95;
                    }
                    if (iVar10 == 0) {
                      iVar10 = bfd_link_hash_lookup
                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);
                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;
                      cVar3 = *pcVar11;
                      goto joined_r0x00066040;
                    }
                    uVar19 = uVar16 + 1;
                  }
LAB_00065e95:
                  cVar3 = *pcVar11;
joined_r0x00066040:
                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {
                    *pcVar11 = '@';
                  }
                  else {
                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);
                    *pcVar11 = '@';
                  }
                  pvVar6 = DAT_001d1224;
                  uVar19 = 0;
                  sVar17 = DAT_001d1228;
                  while (uVar19 < sVar17) {
                    while( true ) {
                      uVar16 = sVar17 + uVar19 >> 1;
                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);
                      iVar10 = strcmp(pcVar11,(char *)*puVar15);
                      if (-1 < iVar10) break;
                      sVar17 = uVar16;
                      if (uVar16 <= uVar19) goto LAB_00065b08;
                    }
                    if (iVar10 == 0) goto LAB_00065d30;
                    uVar19 = uVar16 + 1;
                  }
                }
                else {
                  if (cVar3 == '@') {
LAB_00065f40:
                    if (*(int *)(DAT_001d127c + 0x14) == 0) {
                      strcpy(pcVar11,pcVar11 + 1);
                    }
                    else {
                      *pcVar11 = '_';
                    }
                    uVar19 = 0;
                    uVar16 = sVar17;
                    while (uVar19 < uVar16) {
                      while( true ) {
                        uVar18 = uVar16 + uVar19 >> 1;
                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);
                        iVar10 = strcmp(pcVar11,(char *)*puVar15);
                        if (-1 < iVar10) break;
                        uVar16 = uVar18;
                        if (uVar18 <= uVar19) goto LAB_00065fad;
                      }
                      if (iVar10 == 0) {
                        iVar10 = bfd_link_hash_lookup
                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);
                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;
                        local_78 = DAT_001d1224;
                        sVar17 = DAT_001d1228;
                        break;
                      }
                      uVar19 = uVar18 + 1;
                    }
LAB_00065fad:
                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;
                  }
                  else {
LAB_00065aa8:
                    pcVar12 = strchr(pcVar11,0x40);
                    *pcVar12 = '\0';
                  }
                  uVar19 = 0;
                  while (uVar19 < sVar17) {
                    while( true ) {
                      uVar16 = sVar17 + uVar19 >> 1;
                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);
                      iVar10 = strcmp(pcVar11,(char *)*puVar15);
                      if (-1 < iVar10) break;
                      sVar17 = uVar16;
                      if (uVar16 <= uVar19) goto LAB_00065b08;
                    }
                    if (iVar10 == 0) goto LAB_00065d30;
                    uVar19 = uVar16 + 1;
                  }
                }
              }
              goto LAB_00065b08;
            }
            strcpy(__dest,(char *)*local_74);
            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);
            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {
LAB_00065e00:
              free(__dest);
              goto LAB_00065c0f;
            }
            sprintf(__dest,"%s%s","__imp_",*local_74);
            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);
            if (iVar10 != 0) {
              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';
              goto LAB_00065b1c;
            }
LAB_00065dc0:
            free(__dest);
            goto LAB_00065b37;
          }
        }
        goto LAB_00065b8f;
      }
LAB_000657df:
    }
joined_r0x00065bbb:
    while (__ptr = DAT_001d1224, sVar17 != 0) {
      sVar17 = sVar17 - 1;
      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);
      DAT_001d1224 = pvVar6;
      DAT_001d1228 = sVar17;
      free((void *)*puVar15);
      pvVar6 = DAT_001d1224;
      DAT_001d1224 = __ptr;
    }
    DAT_001d1224 = pvVar6;
    free(__ptr);
  }
  return;
LAB_00065d30:
  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);
  if (*(char *)(iVar10 + 0xc) == '\x01') {
LAB_00065d58:
    free(pcVar11);
    free(__dest);
  }
  else {
LAB_00065b08:
    free(pcVar11);
LAB_00065b1c:
    free(__dest);
    if (!bVar20) goto LAB_00065b37;
  }
LAB_00065c0f:
  if (!bVar5) {
    FUN_00063470();
    FUN_00062700();
  }
  FUN_00062c20();
  FUN_00062700();
  bVar5 = true;
LAB_00065b37:
  local_70 = local_70 + 1;
  if (*(int *)(DAT_001d1218 + 0x38) <= local_70) goto LAB_00065b67;
  local_74 = local_74 + 6;
  puVar15 = (undefined4 *)*local_64;
  local_64 = local_64 + 6;
  if (puVar15 != local_68) goto LAB_00065b67;
  goto LAB_000658a0;
LAB_00065b67:
  __ptr_00 = DAT_001d1238;
  if (bVar5) {
    FUN_000637c0();
    FUN_00062700();
    __ptr_00 = DAT_001d1238;
  }
LAB_00065b8f:
  free(__ptr_00);
  local_68 = (undefined4 *)*local_68;
  pvVar6 = DAT_001d1224;
  sVar17 = DAT_001d1228;
  if (local_68 == (undefined4 *)0x0) goto joined_r0x00065bbb;
  goto LAB_000657a0;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00017b80
ADD EBX,0x169937
SUB ESP,0x88
MOV EAX,dword ptr [ESP + 0x9c]
MOV EAX,dword ptr [EAX + 0x4]
PUSH dword ptr [EAX]
CALL 0x00063a00
MOV EAX,dword ptr [EBX + 0x2218]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00065be7
MOV EAX,dword ptr [EAX + 0x3c]
LEA ESI,[EBX + 0x23e0]
SUB ESP,0x4
LEA EDI,[EBX + 0xfffdeb9b]
MOV dword ptr [EBX + 0x2228],0x0
MOV dword ptr [ESP + 0x4c],EAX
LEA EAX,[EBX + 0xffe93400]
MOV dword ptr [ESP + 0x30],EDI
PUSH EDI
PUSH EAX
PUSH dword ptr [ESI + 0x20]
CALL 0x00016930
MOV EAX,dword ptr [EBX + 0x2228]
SHL EAX,0x3
MOV dword ptr [ESP],EAX
CALL 0x00016dc8
ADD ESP,0xc
MOV dword ptr [EBX + 0x2228],0x0
MOV dword ptr [EBX + 0x2224],EAX
LEA EAX,[EBX + 0xffe93780]
PUSH EDI
PUSH EAX
PUSH dword ptr [ESI + 0x20]
CALL 0x00016930
LEA EAX,[EBX + 0xffe926f0]
PUSH EAX
PUSH 0x8
PUSH dword ptr [EBX + 0x2228]
PUSH dword ptr [EBX + 0x2224]
CALL 0x00016b80
MOV EAX,dword ptr [EBX + 0x2218]
MOV ECX,dword ptr [EBX + 0xffffffa0]
MOV EDX,dword ptr [EAX + 0x34]
MOV dword ptr [ESP + 0x44],EDX
ADD ESP,0x20
MOV dword ptr [ESP + 0x3c],ECX
TEST EDX,EDX
JZ 0x00065bad
LEA ESI,[ESI]
NOP
MOV EDX,dword ptr [EAX + 0x38]
TEST EDX,EDX
JLE 0x000657df
MOV ECX,dword ptr [ESP + 0x48]
MOV EDI,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x1c],0x0
LEA EAX,[ECX + 0x1c]
CMP EDI,dword ptr [ECX + 0x4]
JZ 0x00065804
MOV ESI,dword ptr [ESP + 0x24]
XOR ECX,ECX
JMP 0x000657d8
ADD EAX,0x18
CMP dword ptr [EAX + -0x18],ESI
JZ 0x00065800
ADD ECX,0x1
CMP ECX,EDX
JNZ 0x000657d0
MOV EAX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x24],EAX
TEST EAX,EAX
JZ 0x00065bad
MOV EAX,dword ptr [EBX + 0x2218]
JMP 0x000657a0
MOV dword ptr [ESP + 0x1c],ECX
MOV EAX,dword ptr [ESP + 0x24]
SUB ESP,0xc
ADD EAX,0x8
PUSH EAX
MOV dword ptr [EBX + 0x223c],EAX
CALL 0x000164f0
ADD ESP,0x10
MOVZX EDX,byte ptr [EAX]
MOV dword ptr [EBX + 0x2238],EAX
MOV ECX,EAX
TEST DL,DL
JZ 0x00065847
LEA ESI,[ESI]
MOV EDI,dword ptr [ESP + 0x3c]
TEST byte ptr [EDI + EDX*0x2],0x8c
JNZ 0x0006583d
MOV byte ptr [ECX],0x5f
ADD ECX,0x1
MOVZX EDX,byte ptr [ECX]
TEST DL,DL
JNZ 0x00065830
MOV EDX,dword ptr [EBX + 0x2218]
MOV ECX,dword ptr [ESP + 0x1c]
CMP dword ptr [EDX + 0x38],ECX
JLE 0x00065b8f
LEA EDX,[ECX + ECX*0x2]
MOV ESI,dword ptr [ESP + 0x48]
MOV EDI,dword ptr [ESP + 0x24]
SHL EDX,0x3
LEA ECX,[ESI + EDX*0x1]
CMP EDI,dword ptr [ECX + 0x4]
JNZ 0x00065b8f
LEA EAX,[ESI + EDX*0x1 + 0x1c]
MOV dword ptr [ESP + 0x18],ECX
MOV dword ptr [ESP + 0x28],EAX
LEA EAX,[EBX + 0xfffdeaf4]
MOV dword ptr [ESP + 0x40],EAX
LEA EAX,[EBX + 0xffeaa835]
MOV dword ptr [ESP + 0x34],0x0
MOV dword ptr [ESP + 0x30],EAX
LEA ESI,[ESI]
MOV EDI,dword ptr [ESP + 0x18]
SUB ESP,0xc
MOV EAX,dword ptr [EDI]
MOVZX ESI,byte ptr [EAX]
PUSH EAX
CALL 0x00016760
ADD EAX,0x8
MOV dword ptr [ESP],EAX
CALL 0x00016dc8
MOV ECX,ESI
MOV dword ptr [ESP + 0x30],EAX
MOV EBP,EAX
ADD ESP,0x10
CMP CL,0x40
JZ 0x00065c98
MOV EDI,dword ptr [EDI]
SUB ESP,0x8
PUSH 0x40
PUSH EDI
CALL 0x00016730
MOV EDX,dword ptr [EBX + 0x227c]
ADD ESP,0x10
MOV ESI,EAX
LEA EAX,[EBX + 0xffead179]
MOV EDX,dword ptr [EDX + 0x14]
TEST EDX,EDX
CMOVZ EAX,dword ptr [ESP + 0x2c]
PUSH EDI
PUSH EAX
PUSH dword ptr [ESP + 0x38]
PUSH EBP
CALL 0x00016af0
MOV dword ptr [ESP],0x0
PUSH 0x0
PUSH 0x0
PUSH EBP
MOV EAX,dword ptr [ESP + 0xb0]
PUSH dword ptr [EAX + 0x20]
CALL 0x00016590
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00065931
CMP byte ptr [EAX + 0xc],0x1
JZ 0x00065bf0
MOV EDX,dword ptr [EBX + 0x227c]
LEA EAX,[EBX + 0xffead179]
MOV ECX,dword ptr [EDX + 0x14]
TEST ECX,ECX
CMOVZ EAX,dword ptr [ESP + 0x2c]
SUB ESP,0xc
MOV EDX,dword ptr [ESP + 0x24]
PUSH dword ptr [EDX]
PUSH EAX
LEA EAX,[EBX + 0xfffdecce]
PUSH dword ptr [ESP + 0x54]
PUSH EAX
MOV EDI,dword ptr [ESP + 0x3c]
PUSH EDI
CALL 0x00016af0
ADD ESP,0x14
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH EDI
MOV EAX,dword ptr [ESP + 0xb0]
PUSH dword ptr [EAX + 0x20]
CALL 0x00016590
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00065db0
MOVZX EAX,byte ptr [EAX + 0xc]
XOR ECX,ECX
CMP AL,0x1
SETZ CL
MOV dword ptr [ESP + 0x38],ECX
TEST ESI,ESI
JNZ 0x00065d23
CMP AL,0x1
JZ 0x00065d23
MOV EDX,dword ptr [EBX + 0x227c]
LEA EAX,[EBX + 0xffead179]
MOV ECX,dword ptr [EDX + 0x14]
MOV EDX,dword ptr [ESP + 0x18]
TEST ECX,ECX
CMOVZ EAX,dword ptr [ESP + 0x2c]
PUSH dword ptr [EDX]
PUSH EAX
PUSH dword ptr [ESP + 0x38]
MOV ESI,dword ptr [ESP + 0x2c]
PUSH ESI
CALL 0x00016af0
MOV dword ptr [ESP],ESI
CALL 0x00016760
ADD EAX,0x3
MOV dword ptr [ESP],EAX
CALL 0x00016dc8
MOV EDI,EAX
MOV dword ptr [ESP + 0x1c],EAX
POP EBP
POP EAX
PUSH ESI
PUSH EDI
CALL 0x00016530
POP EAX
XOR EAX,EAX
POP EDX
PUSH 0x40
CMP byte ptr [EDI],0x40
SETZ AL
ADD EAX,EDI
PUSH EAX
CALL 0x00016730
ADD ESP,0x10
MOV dword ptr [ESP + 0x44],EAX
TEST EAX,EAX
JZ 0x00065a19
MOV byte ptr [EAX + 0x1],0x0
MOV EDX,dword ptr [EBX + 0x2228]
MOV EAX,dword ptr [EBX + 0x2224]
XOR EDI,EDI
MOV dword ptr [ESP + 0x14],EAX
MOV EBP,EDX
JMP 0x00065a3d
MOV ECX,EBP
MOV EBP,EDI
JZ 0x00065d80
LEA EDI,[ESI + 0x1]
CMP EDI,EBP
JNC 0x00065a75
MOV dword ptr [ESP + 0x10],EDI
MOV EDI,EBP
MOV EAX,dword ptr [ESP + 0x10]
SUB ESP,0x8
LEA ESI,[EAX + EDI*0x1]
MOV EAX,dword ptr [ESP + 0x1c]
SHR ESI,0x1
LEA EBP,[EAX + ESI*0x8]
PUSH dword ptr [EBP]
PUSH dword ptr [ESP + 0x18]
CALL 0x000160c0
ADD ESP,0x10
TEST EAX,EAX
JNS 0x00065a30
MOV EDI,ESI
CMP ESI,dword ptr [ESP + 0x10]
JA 0x00065a47
MOV EAX,dword ptr [ESP + 0xc]
MOVZX EAX,byte ptr [EAX]
CMP AL,0x3f
JZ 0x00065b08
MOV EDX,dword ptr [EBX + 0x2224]
MOV ESI,dword ptr [EBX + 0x2228]
MOV dword ptr [ESP + 0x14],EDX
MOV EDX,dword ptr [ESP + 0x44]
TEST EDX,EDX
JZ 0x00065e20
CMP AL,0x40
JZ 0x00065f40
SUB ESP,0x8
PUSH 0x40
PUSH dword ptr [ESP + 0x18]
CALL 0x00016730
ADD ESP,0x10
MOV byte ptr [EAX],0x0
XOR EBP,EBP
JMP 0x00065acd
MOV EDX,ESI
MOV ESI,EBP
JZ 0x00065d30
LEA EBP,[EDI + 0x1]
CMP EBP,ESI
JNC 0x00065b08
MOV dword ptr [ESP + 0x10],EBP
MOV EBP,ESI
MOV EAX,dword ptr [ESP + 0x10]
SUB ESP,0x8
LEA EDI,[EBP + EAX*0x1]
MOV EAX,dword ptr [ESP + 0x1c]
SHR EDI,0x1
LEA ESI,[EAX + EDI*0x8]
PUSH dword ptr [ESI]
PUSH dword ptr [ESP + 0x18]
CALL 0x000160c0
ADD ESP,0x10
TEST EAX,EAX
JNS 0x00065ac0
MOV EBP,EDI
CMP EDI,dword ptr [ESP + 0x10]
JA 0x00065ad7
LEA ESI,[ESI]
SUB ESP,0xc
MOV ESI,0x1
PUSH dword ptr [ESP + 0x18]
CALL 0x00016db0
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [ESP + 0x2c]
CALL 0x00016db0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00065c0c
MOV EAX,dword ptr [EBX + 0x2218]
ADD dword ptr [ESP + 0x1c],0x1
MOV ECX,dword ptr [ESP + 0x1c]
CMP dword ptr [EAX + 0x38],ECX
JLE 0x00065b67
MOV EDX,dword ptr [ESP + 0x28]
ADD dword ptr [ESP + 0x18],0x18
MOV EAX,dword ptr [EDX]
ADD EDX,0x18
MOV dword ptr [ESP + 0x28],EDX
CMP EAX,dword ptr [ESP + 0x24]
JZ 0x000658a0
MOV EDX,dword ptr [ESP + 0x34]
TEST EDX,EDX
JZ 0x00065b89
MOV EAX,dword ptr [ESP + 0x90]
CALL 0x000637c0
MOV ECX,dword ptr [ESP + 0x94]
MOV EDX,dword ptr [EAX]
CALL 0x00062700
MOV EAX,dword ptr [EBX + 0x2238]
SUB ESP,0xc
PUSH EAX
CALL 0x00016db0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x24],EAX
TEST EAX,EAX
JNZ 0x000657f1
MOV ESI,dword ptr [EBX + 0x2228]
MOV EDI,dword ptr [EBX + 0x2224]
TEST ESI,ESI
JZ 0x00065bdb
LEA ESI,[ESI]
SUB ESI,0x1
SUB ESP,0xc
PUSH dword ptr [EDI + ESI*0x8]
MOV dword ptr [EBX + 0x2228],ESI
CALL 0x00016db0
ADD ESP,0x10
TEST ESI,ESI
JNZ 0x00065bc0
SUB ESP,0xc
PUSH EDI
CALL 0x00016db0
ADD ESP,0x10
ADD ESP,0x7c
POP EBX
POP ESI
POP EDI
POP EBP
RET
TEST ESI,ESI
JNZ 0x00065e00
SUB ESP,0xc
MOV ESI,0x1
PUSH dword ptr [ESP + 0x2c]
CALL 0x00016db0
ADD ESP,0x10
AND ESI,0x1
MOV EBP,dword ptr [ESP + 0x34]
TEST EBP,EBP
JZ 0x00065dd8
MOV ECX,dword ptr [ESP + 0x18]
MOV EDI,0x0
MOV EAX,dword ptr [ECX]
MOV dword ptr [ESP + 0x58],EAX
MOV EDX,dword ptr [ECX + 0x8]
MOV dword ptr [ESP + 0x54],EDX
MOV EAX,dword ptr [ECX + 0xc]
MOV dword ptr [ESP + 0x5c],EAX
MOV EAX,dword ptr [ECX + 0x10]
TEST EAX,EAX
MOV dword ptr [ESP + 0x60],EAX
CMOVS EAX,EDI
XOR EDI,EDI
TEST EDX,EDX
MOV EDX,dword ptr [ESP + 0x90]
MOV word ptr [ESP + 0x68],DI
MOV dword ptr [ESP + 0x64],EAX
MOV EAX,dword ptr [ECX + 0x14]
SETZ byte ptr [ESP + 0x6a]
XOR ECX,ECX
TEST AL,AL
MOV byte ptr [ESP + 0x6b],AL
LEA EAX,[ESP + 0x54]
SETZ CL
AND ECX,ESI
CALL 0x00062c20
MOV ECX,dword ptr [ESP + 0x94]
MOV EDX,dword ptr [EAX]
CALL 0x00062700
MOV dword ptr [ESP + 0x34],0x1
JMP 0x00065b37
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x20]
PUSH dword ptr [EAX]
MOV ESI,dword ptr [ESP + 0x2c]
PUSH ESI
CALL 0x00016530
MOV dword ptr [ESP],0x0
PUSH 0x0
PUSH 0x0
PUSH ESI
MOV EAX,dword ptr [ESP + 0xb0]
PUSH dword ptr [EAX + 0x20]
CALL 0x00016590
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00065cd7
CMP byte ptr [EAX + 0xc],0x1
JZ 0x00065e00
MOV EAX,dword ptr [ESP + 0x18]
PUSH dword ptr [EAX]
PUSH dword ptr [ESP + 0x44]
PUSH dword ptr [ESP + 0x38]
MOV EDI,dword ptr [ESP + 0x2c]
PUSH EDI
CALL 0x00016af0
MOV dword ptr [ESP],0x0
PUSH 0x0
PUSH 0x0
PUSH EDI
MOV EAX,dword ptr [ESP + 0xb0]
PUSH dword ptr [EAX + 0x20]
CALL 0x00016590
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00065dc0
CMP byte ptr [EAX + 0xc],0x1
SETZ AL
MOVZX EAX,AL
MOV dword ptr [ESP + 0x38],EAX
XOR ESI,ESI
JMP 0x00065b1c
SUB ESP,0xc
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EDX + 0x4]
MOV EAX,dword ptr [ESP + 0xb0]
PUSH dword ptr [EAX + 0x20]
CALL 0x00016590
ADD ESP,0x20
CMP byte ptr [EAX + 0xc],0x1
JNZ 0x00065b08
SUB ESP,0xc
MOV ESI,0x1
PUSH dword ptr [ESP + 0x18]
CALL 0x00016db0
POP EAX
PUSH dword ptr [ESP + 0x2c]
CALL 0x00016db0
ADD ESP,0x10
JMP 0x00065c0c
SUB ESP,0xc
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH dword ptr [ECX + 0x4]
MOV EAX,dword ptr [ESP + 0xb0]
PUSH dword ptr [EAX + 0x20]
CALL 0x00016590
ADD ESP,0x20
CMP byte ptr [EAX + 0xc],0x1
JNZ 0x00065a75
JMP 0x00065d58
MOV dword ptr [ESP + 0x38],0x0
TEST ESI,ESI
JZ 0x000659a9
SUB ESP,0xc
PUSH dword ptr [ESP + 0x2c]
CALL 0x00016db0
ADD ESP,0x10
JMP 0x00065b37
MOV EAX,dword ptr [ESP + 0x90]
CALL 0x00063470
MOV ECX,dword ptr [ESP + 0x94]
MOV EDX,dword ptr [EAX]
CALL 0x00062700
JMP 0x00065c1b
SUB ESP,0xc
MOV ESI,0x1
PUSH dword ptr [ESP + 0x2c]
CALL 0x00016db0
ADD ESP,0x10
JMP 0x00065c0f
CMP AL,0x40
JZ 0x00065f40
SUB ESP,0xc
XOR EBP,EBP
MOV EDI,dword ptr [ESP + 0x18]
PUSH EDI
CALL 0x00016760
ADD ESP,0x10
MOV ECX,0x40
MOV dword ptr [ESP + 0x44],EAX
MOV word ptr [EDI + EAX*0x1],CX
JMP 0x00065e5d
MOV EDX,ESI
MOV ESI,EBP
JZ 0x00066011
LEA EBP,[EDI + 0x1]
CMP EBP,ESI
JNC 0x00065e95
MOV dword ptr [ESP + 0x10],EBP
MOV EBP,ESI
MOV EAX,dword ptr [ESP + 0x10]
SUB ESP,0x8
LEA EDI,[EBP + EAX*0x1]
MOV EAX,dword ptr [ESP + 0x1c]
SHR EDI,0x1
LEA ESI,[EAX + EDI*0x8]
PUSH dword ptr [ESI]
PUSH dword ptr [ESP + 0x18]
CALL 0x000160c0
ADD ESP,0x10
TEST EAX,EAX
JNS 0x00065e50
MOV EBP,EDI
CMP EDI,dword ptr [ESP + 0x10]
JA 0x00065e67
MOV EAX,dword ptr [ESP + 0xc]
CMP byte ptr [EAX],0x5f
JNZ 0x00065eaf
MOV EAX,dword ptr [EBX + 0x227c]
MOV EAX,dword ptr [EAX + 0x14]
TEST EAX,EAX
JNZ 0x0006604b
SUB ESP,0x4
MOV EAX,dword ptr [ESP + 0x48]
ADD EAX,0x2
PUSH EAX
MOV ESI,dword ptr [ESP + 0x14]
LEA EAX,[ESI + 0x1]
PUSH ESI
PUSH EAX
CALL 0x000161c0
MOV byte ptr [ESI],0x40
ADD ESP,0x10
MOV EAX,dword ptr [EBX + 0x2224]
MOV EBP,dword ptr [EBX + 0x2228]
XOR EDI,EDI
MOV dword ptr [ESP + 0x14],EAX
JMP 0x00065ef5
MOV EDX,EBP
MOV EBP,EDI
JZ 0x00065d30
LEA EDI,[ESI + 0x1]
CMP EDI,EBP
JNC 0x00065b08
MOV dword ptr [ESP + 0x10],EDI
MOV EDI,EBP
MOV EAX,dword ptr [ESP + 0x10]
SUB ESP,0x8
LEA ESI,[EDI + EAX*0x1]
MOV EAX,dword ptr [ESP + 0x1c]
SHR ESI,0x1
LEA EBP,[EAX + ESI*0x8]
PUSH dword ptr [EBP]
PUSH dword ptr [ESP + 0x18]
CALL 0x000160c0
ADD ESP,0x10
TEST EAX,EAX
JNS 0x00065ee8
MOV EDI,ESI
CMP ESI,dword ptr [ESP + 0x10]
JA 0x00065f03
JMP 0x00065b08
MOV EAX,dword ptr [EBX + 0x227c]
MOV EBP,dword ptr [EAX + 0x14]
TEST EBP,EBP
JZ 0x00065ff8
MOV EAX,dword ptr [ESP + 0xc]
MOV byte ptr [EAX],0x5f
XOR EBP,EBP
MOV dword ptr [ESP + 0x4c],ESI
MOV EDI,ESI
JMP 0x00065f71
MOV ECX,EDI
MOV EDI,EBP
JZ 0x00065fbe
LEA EBP,[ESI + 0x1]
CMP EBP,EDI
JNC 0x00065fa9
MOV dword ptr [ESP + 0x10],EBP
MOV EBP,EDI
MOV EAX,dword ptr [ESP + 0x10]
SUB ESP,0x8
LEA ESI,[EBP + EAX*0x1]
MOV EAX,dword ptr [ESP + 0x1c]
SHR ESI,0x1
LEA EDI,[EAX + ESI*0x8]
PUSH dword ptr [EDI]
PUSH dword ptr [ESP + 0x18]
CALL 0x000160c0
ADD ESP,0x10
TEST EAX,EAX
JNS 0x00065f68
MOV EBP,ESI
CMP ESI,dword ptr [ESP + 0x10]
JA 0x00065f7b
MOV ESI,dword ptr [ESP + 0x4c]
MOV EDI,dword ptr [ESP + 0x44]
TEST EDI,EDI
JZ 0x00065abc
JMP 0x00065aa8
SUB ESP,0xc
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH dword ptr [ECX + 0x4]
MOV EAX,dword ptr [ESP + 0xb0]
PUSH dword ptr [EAX + 0x20]
CALL 0x00016590
ADD ESP,0x20
CMP byte ptr [EAX + 0xc],0x1
JZ 0x00065d58
MOV EAX,dword ptr [EBX + 0x2224]
MOV ESI,dword ptr [EBX + 0x2228]
MOV dword ptr [ESP + 0x14],EAX
JMP 0x00065fad
SUB ESP,0x8
MOV EDX,dword ptr [ESP + 0x14]
LEA EAX,[EDX + 0x1]
PUSH EAX
PUSH EDX
CALL 0x00016530
ADD ESP,0x10
JMP 0x00065f58
SUB ESP,0xc
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EDX + 0x4]
MOV EAX,dword ptr [ESP + 0xb0]
PUSH dword ptr [EAX + 0x20]
CALL 0x00016590
ADD ESP,0x20
CMP byte ptr [EAX + 0xc],0x1
JZ 0x00065d58
MOV EAX,dword ptr [ESP + 0xc]
CMP byte ptr [EAX],0x5f
JZ 0x00065e9e
JMP 0x00065eaf
MOV EAX,dword ptr [ESP + 0xc]
MOV byte ptr [EAX],0x40
JMP 0x00065ece
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_000656c0(int param_1,int param_2)\n\n{\n  char *pcVar1;\n  byte bVar2;\n  char cVar3;\n  int iVar4;\n  bool bVar5;\n  void *pvVar6;\n  undefined *puVar7;\n  void *__ptr;\n  int *piVar8;\n  byte *__ptr_00;\n  char *__dest;\n  char *pcVar9;\n  int iVar10;\n  char *pcVar11;\n  char *pcVar12;\n  size_t sVar13;\n  byte *pbVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  size_t sVar17;\n  uint uVar18;\n  uint uVar19;\n  bool bVar20;\n  void *local_78;\n  undefined4 *local_74;\n  int local_70;\n  undefined4 *local_68;\n  undefined4 *local_64;\n  \n  FUN_00063a00(**(undefined4 **)(param_1 + 4));\n  if (DAT_001d1218 != 0) {\n    iVar4 = *(int *)(DAT_001d1218 + 0x3c);\n    pcVar1 = "";\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"");\n    DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3);\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"");\n    qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0);\n    puVar7 = PTR__sch_istable_001cefa0;\n    for (local_68 = *(undefined4 **)(DAT_001d1218 + 0x34); pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0; local_68 = (undefined4 *)*local_68) {\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }\n  return;\nLAB_00065d30:\n  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n  if (*(char *)(iVar10 + 0xc) == '\x01') {\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }\nLAB_00065c0f:\n  if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }\n  FUN_00062c20();\n  FUN_00062700();\n  bVar5 = true;\nLAB_00065b37:\n  local_70 = local_70 + 1;\n  if (*(int *)(DAT_001d1218 + 0x38) <= local_70) goto LAB_00065b67;\n  local_74 = local_74 + 6;\n  puVar15 = (undefined4 *)*local_64;\n  local_64 = local_64 + 6;\n  if (puVar15 != local_68) goto LAB_00065b67;\n  goto LAB_000658a0;\nLAB_00065b67:\n  __ptr_00 = DAT_001d1238;\n  if (bVar5) {\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }\nLAB_00065b8f:\n  free(__ptr_00);\n  local_68 = (undefined4 *)*local_68;\n  pvVar6 = DAT_001d1224;\n  sVar17 = DAT_001d1228;\n  if (local_68 == (undefined4 *)0x0) goto joined_r0x00065bbb;\n  goto LAB_000657a0;\n}\n\n" comment (function_definition "void FUN_000656c0(int param_1,int param_2)\n\n{\n  char *pcVar1;\n  byte bVar2;\n  char cVar3;\n  int iVar4;\n  bool bVar5;\n  void *pvVar6;\n  undefined *puVar7;\n  void *__ptr;\n  int *piVar8;\n  byte *__ptr_00;\n  char *__dest;\n  char *pcVar9;\n  int iVar10;\n  char *pcVar11;\n  char *pcVar12;\n  size_t sVar13;\n  byte *pbVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  size_t sVar17;\n  uint uVar18;\n  uint uVar19;\n  bool bVar20;\n  void *local_78;\n  undefined4 *local_74;\n  int local_70;\n  undefined4 *local_68;\n  undefined4 *local_64;\n  \n  FUN_00063a00(**(undefined4 **)(param_1 + 4));\n  if (DAT_001d1218 != 0) {\n    iVar4 = *(int *)(DAT_001d1218 + 0x3c);\n    pcVar1 = "";\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"");\n    DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3);\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"");\n    qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0);\n    puVar7 = PTR__sch_istable_001cefa0;\n    for (local_68 = *(undefined4 **)(DAT_001d1218 + 0x34); pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0; local_68 = (undefined4 *)*local_68) {\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }\n  return;\nLAB_00065d30:\n  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n  if (*(char *)(iVar10 + 0xc) == '\x01') {\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }\nLAB_00065c0f:\n  if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }\n  FUN_00062c20();\n  FUN_00062700();\n  bVar5 = true;\nLAB_00065b37:\n  local_70 = local_70 + 1;\n  if (*(int *)(DAT_001d1218 + 0x38) <= local_70) goto LAB_00065b67;\n  local_74 = local_74 + 6;\n  puVar15 = (undefined4 *)*local_64;\n  local_64 = local_64 + 6;\n  if (puVar15 != local_68) goto LAB_00065b67;\n  goto LAB_000658a0;\nLAB_00065b67:\n  __ptr_00 = DAT_001d1238;\n  if (bVar5) {\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }\nLAB_00065b8f:\n  free(__ptr_00);\n  local_68 = (undefined4 *)*local_68;\n  pvVar6 = DAT_001d1224;\n  sVar17 = DAT_001d1228;\n  if (local_68 == (undefined4 *)0x0) goto joined_r0x00065bbb;\n  goto LAB_000657a0;\n}" primitive_type (function_declarator "FUN_000656c0(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  byte bVar2;\n  char cVar3;\n  int iVar4;\n  bool bVar5;\n  void *pvVar6;\n  undefined *puVar7;\n  void *__ptr;\n  int *piVar8;\n  byte *__ptr_00;\n  char *__dest;\n  char *pcVar9;\n  int iVar10;\n  char *pcVar11;\n  char *pcVar12;\n  size_t sVar13;\n  byte *pbVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  size_t sVar17;\n  uint uVar18;\n  uint uVar19;\n  bool bVar20;\n  void *local_78;\n  undefined4 *local_74;\n  int local_70;\n  undefined4 *local_68;\n  undefined4 *local_64;\n  \n  FUN_00063a00(**(undefined4 **)(param_1 + 4));\n  if (DAT_001d1218 != 0) {\n    iVar4 = *(int *)(DAT_001d1218 + 0x3c);\n    pcVar1 = "";\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"");\n    DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3);\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"");\n    qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0);\n    puVar7 = PTR__sch_istable_001cefa0;\n    for (local_68 = *(undefined4 **)(DAT_001d1218 + 0x34); pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0; local_68 = (undefined4 *)*local_68) {\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }\n  return;\nLAB_00065d30:\n  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n  if (*(char *)(iVar10 + 0xc) == '\x01') {\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }\nLAB_00065c0f:\n  if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }\n  FUN_00062c20();\n  FUN_00062700();\n  bVar5 = true;\nLAB_00065b37:\n  local_70 = local_70 + 1;\n  if (*(int *)(DAT_001d1218 + 0x38) <= local_70) goto LAB_00065b67;\n  local_74 = local_74 + 6;\n  puVar15 = (undefined4 *)*local_64;\n  local_64 = local_64 + 6;\n  if (puVar15 != local_68) goto LAB_00065b67;\n  goto LAB_000658a0;\nLAB_00065b67:\n  __ptr_00 = DAT_001d1238;\n  if (bVar5) {\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }\nLAB_00065b8f:\n  free(__ptr_00);\n  local_68 = (undefined4 *)*local_68;\n  pvVar6 = DAT_001d1224;\n  sVar17 = DAT_001d1228;\n  if (local_68 == (undefined4 *)0x0) goto joined_r0x00065bbb;\n  goto LAB_000657a0;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "void *pvVar6;" primitive_type (pointer_declarator "*pvVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "byte *__ptr_00;" type_identifier (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "char *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "size_t sVar13;" primitive_type identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "size_t sVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "void *local_78;" primitive_type (pointer_declarator "*local_78" * identifier) ;) (declaration "undefined4 *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "undefined4 *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "undefined4 *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (expression_statement "FUN_00063a00(**(undefined4 **)(param_1 + 4));" (call_expression "FUN_00063a00(**(undefined4 **)(param_1 + 4))" identifier (argument_list "(**(undefined4 **)(param_1 + 4))" ( (pointer_expression "**(undefined4 **)(param_1 + 4)" * (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ))) ;) (if_statement "if (DAT_001d1218 != 0) {\n    iVar4 = *(int *)(DAT_001d1218 + 0x3c);\n    pcVar1 = "";\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"");\n    DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3);\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"");\n    qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0);\n    puVar7 = PTR__sch_istable_001cefa0;\n    for (local_68 = *(undefined4 **)(DAT_001d1218 + 0x34); pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0; local_68 = (undefined4 *)*local_68) {\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }\n  return;\nLAB_00065d30:\n  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n  if (*(char *)(iVar10 + 0xc) == '\x01') {\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }\nLAB_00065c0f:\n  if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }\n  FUN_00062c20();\n  FUN_00062700();\n  bVar5 = true;\nLAB_00065b37:\n  local_70 = local_70 + 1;\n  if (*(int *)(DAT_001d1218 + 0x38) <= local_70) goto LAB_00065b67;\n  local_74 = local_74 + 6;\n  puVar15 = (undefined4 *)*local_64;\n  local_64 = local_64 + 6;\n  if (puVar15 != local_68) goto LAB_00065b67;\n  goto LAB_000658a0;\nLAB_00065b67:\n  __ptr_00 = DAT_001d1238;\n  if (bVar5) {\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }\nLAB_00065b8f:\n  free(__ptr_00);\n  local_68 = (undefined4 *)*local_68;\n  pvVar6 = DAT_001d1224;\n  sVar17 = DAT_001d1228;\n  if (local_68 == (undefined4 *)0x0) goto joined_r0x00065bbb;\n  goto LAB_000657a0;\n}" if (parenthesized_expression "(DAT_001d1218 != 0)" ( (binary_expression "DAT_001d1218 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar4 = *(int *)(DAT_001d1218 + 0x3c);\n    pcVar1 = "";\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"");\n    DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3);\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"");\n    qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0);\n    puVar7 = PTR__sch_istable_001cefa0;\n    for (local_68 = *(undefined4 **)(DAT_001d1218 + 0x34); pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0; local_68 = (undefined4 *)*local_68) {\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }\n  return;\nLAB_00065d30:\n  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n  if (*(char *)(iVar10 + 0xc) == '\x01') {\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }\nLAB_00065c0f:\n  if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }\n  FUN_00062c20();\n  FUN_00062700();\n  bVar5 = true;\nLAB_00065b37:\n  local_70 = local_70 + 1;\n  if (*(int *)(DAT_001d1218 + 0x38) <= local_70) goto LAB_00065b67;\n  local_74 = local_74 + 6;\n  puVar15 = (undefined4 *)*local_64;\n  local_64 = local_64 + 6;\n  if (puVar15 != local_68) goto LAB_00065b67;\n  goto LAB_000658a0;\nLAB_00065b67:\n  __ptr_00 = DAT_001d1238;\n  if (bVar5) {\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }\nLAB_00065b8f:\n  free(__ptr_00);\n  local_68 = (undefined4 *)*local_68;\n  pvVar6 = DAT_001d1224;\n  sVar17 = DAT_001d1228;\n  if (local_68 == (undefined4 *)0x0) goto joined_r0x00065bbb;\n  goto LAB_000657a0;\n}" { (expression_statement "iVar4 = *(int *)(DAT_001d1218 + 0x3c);" (assignment_expression "iVar4 = *(int *)(DAT_001d1218 + 0x3c)" identifier = (pointer_expression "*(int *)(DAT_001d1218 + 0x3c)" * (cast_expression "(int *)(DAT_001d1218 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1218 + 0x3c)" ( (binary_expression "DAT_001d1218 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "pcVar1 = "";" (assignment_expression "pcVar1 = """ identifier = (string_literal """" " ")) ;) (expression_statement "DAT_001d1228 = 0;" (assignment_expression "DAT_001d1228 = 0" identifier = number_literal) ;) (expression_statement "bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"");" (call_expression "bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"")" identifier (argument_list "(DAT_001d1400,FUN_00062400,"")" ( identifier , identifier , (string_literal """" " ") ))) ;) (expression_statement "DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3);" (assignment_expression "DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3)" identifier = (cast_expression "(void *)xmalloc(DAT_001d1228 << 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(DAT_001d1228 << 3)" identifier (argument_list "(DAT_001d1228 << 3)" ( (binary_expression "DAT_001d1228 << 3" identifier << number_literal) ))))) ;) (expression_statement "DAT_001d1228 = 0;" (assignment_expression "DAT_001d1228 = 0" identifier = number_literal) ;) (expression_statement "bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"");" (call_expression "bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"")" identifier (argument_list "(DAT_001d1400,FUN_00062780,"")" ( identifier , identifier , (string_literal """" " ") ))) ;) (expression_statement "qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0);" (call_expression "qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0)" identifier (argument_list "(DAT_001d1224,DAT_001d1228,8,FUN_000616f0)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "puVar7 = PTR__sch_istable_001cefa0;" (assignment_expression "puVar7 = PTR__sch_istable_001cefa0" identifier = identifier) ;) (for_statement "for (local_68 = *(undefined4 **)(DAT_001d1218 + 0x34); pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0; local_68 = (undefined4 *)*local_68) {\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }" for ( (assignment_expression "local_68 = *(undefined4 **)(DAT_001d1218 + 0x34)" identifier = (pointer_expression "*(undefined4 **)(DAT_001d1218 + 0x34)" * (cast_expression "(undefined4 **)(DAT_001d1218 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_001d1218 + 0x34)" ( (binary_expression "DAT_001d1218 + 0x34" identifier + number_literal) ))))) ; (comma_expression "pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0" (assignment_expression "pvVar6 = DAT_001d1224" identifier = identifier) , (comma_expression "sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0" (assignment_expression "sVar17 = DAT_001d1228" identifier = identifier) , (binary_expression "local_68 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ; (assignment_expression "local_68 = (undefined4 *)*local_68" identifier = (cast_expression "(undefined4 *)*local_68" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_68" * identifier))) ) (compound_statement "{\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }" { (labeled_statement "LAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }" statement_identifier : (if_statement "if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }" if (parenthesized_expression "(0 < *(int *)(DAT_001d1218 + 0x38))" ( (binary_expression "0 < *(int *)(DAT_001d1218 + 0x38)" number_literal < (pointer_expression "*(int *)(DAT_001d1218 + 0x38)" * (cast_expression "(int *)(DAT_001d1218 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1218 + 0x38)" ( (binary_expression "DAT_001d1218 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }" { (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (if_statement "if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }" if (parenthesized_expression "(local_68 != *(undefined4 **)(iVar4 + 4))" ( (binary_expression "local_68 != *(undefined4 **)(iVar4 + 4)" identifier != (pointer_expression "*(undefined4 **)(iVar4 + 4)" * (cast_expression "(undefined4 **)(iVar4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }" { (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "piVar8 = (int *)(iVar4 + 0x1c);" (assignment_expression "piVar8 = (int *)(iVar4 + 0x1c)" identifier = (cast_expression "(int *)(iVar4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) ;) (do_statement "do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);" do (compound_statement "{\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          }" { (expression_statement "local_70 = local_70 + 1;" (assignment_expression "local_70 = local_70 + 1" identifier = (binary_expression "local_70 + 1" identifier + number_literal)) ;) (if_statement "if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;" if (parenthesized_expression "(local_70 == *(int *)(DAT_001d1218 + 0x38))" ( (binary_expression "local_70 == *(int *)(DAT_001d1218 + 0x38)" identifier == (pointer_expression "*(int *)(DAT_001d1218 + 0x38)" * (cast_expression "(int *)(DAT_001d1218 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1218 + 0x38)" ( (binary_expression "DAT_001d1218 + 0x38" identifier + number_literal) ))))) )) (goto_statement "goto LAB_000657df;" goto statement_identifier ;)) (expression_statement "puVar15 = (undefined4 *)*piVar8;" (assignment_expression "puVar15 = (undefined4 *)*piVar8" identifier = (cast_expression "(undefined4 *)*piVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (expression_statement "piVar8 = piVar8 + 6;" (assignment_expression "piVar8 = piVar8 + 6" identifier = (binary_expression "piVar8 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar15 != local_68)" ( (binary_expression "puVar15 != local_68" identifier != identifier) )) ;) })) (expression_statement "DAT_001d123c = local_68 + 2;" (assignment_expression "DAT_001d123c = local_68 + 2" identifier = (binary_expression "local_68 + 2" identifier + number_literal)) ;) (expression_statement "__ptr_00 = (byte *)xstrdup(DAT_001d123c);" (assignment_expression "__ptr_00 = (byte *)xstrdup(DAT_001d123c)" identifier = (cast_expression "(byte *)xstrdup(DAT_001d123c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(DAT_001d123c)" identifier (argument_list "(DAT_001d123c)" ( identifier ))))) ;) (expression_statement "bVar2 = *__ptr_00;" (assignment_expression "bVar2 = *__ptr_00" identifier = (pointer_expression "*__ptr_00" * identifier)) ;) (expression_statement "pbVar14 = __ptr_00;" (assignment_expression "pbVar14 = __ptr_00" identifier = identifier) ;) (expression_statement "DAT_001d1238 = __ptr_00;" (assignment_expression "DAT_001d1238 = __ptr_00" identifier = identifier) ;) (while_statement "while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }" while (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }" { (if_statement "if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }" if (parenthesized_expression "((puVar7[(uint)bVar2 * 2] & 0x8c) == 0)" ( (binary_expression "(puVar7[(uint)bVar2 * 2] & 0x8c) == 0" (parenthesized_expression "(puVar7[(uint)bVar2 * 2] & 0x8c)" ( (binary_expression "puVar7[(uint)bVar2 * 2] & 0x8c" (subscript_expression "puVar7[(uint)bVar2 * 2]" identifier [ (binary_expression "(uint)bVar2 * 2" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) (compound_statement "{\n            *pbVar14 = 0x5f;\n          }" { (expression_statement "*pbVar14 = 0x5f;" (assignment_expression "*pbVar14 = 0x5f" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) })) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "bVar2 = *pbVar14;" (assignment_expression "bVar2 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) })) (if_statement "if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }" if (parenthesized_expression "(local_70 < *(int *)(DAT_001d1218 + 0x38))" ( (binary_expression "local_70 < *(int *)(DAT_001d1218 + 0x38)" identifier < (pointer_expression "*(int *)(DAT_001d1218 + 0x38)" * (cast_expression "(int *)(DAT_001d1218 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1218 + 0x38)" ( (binary_expression "DAT_001d1218 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }" { (expression_statement "local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);" (assignment_expression "local_74 = (undefined4 *)(iVar4 + local_70 * 0x18)" identifier = (cast_expression "(undefined4 *)(iVar4 + local_70 * 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + local_70 * 0x18)" ( (binary_expression "iVar4 + local_70 * 0x18" identifier + (binary_expression "local_70 * 0x18" identifier * number_literal)) )))) ;) (if_statement "if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }" if (parenthesized_expression "(local_68 == (undefined4 *)local_74[1])" ( (binary_expression "local_68 == (undefined4 *)local_74[1]" identifier == (cast_expression "(undefined4 *)local_74[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_74[1]" identifier [ number_literal ]))) )) (compound_statement "{\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }" { (expression_statement "local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);" (assignment_expression "local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18)" identifier = (cast_expression "(undefined4 *)(iVar4 + 0x1c + local_70 * 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c + local_70 * 0x18)" ( (binary_expression "iVar4 + 0x1c + local_70 * 0x18" (binary_expression "iVar4 + 0x1c" identifier + number_literal) + (binary_expression "local_70 * 0x18" identifier * number_literal)) )))) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (labeled_statement "LAB_000658a0:\n            cVar3 = *(char *)*local_74;" statement_identifier : (expression_statement "cVar3 = *(char *)*local_74;" (assignment_expression "cVar3 = *(char *)*local_74" identifier = (pointer_expression "*(char *)*local_74" * (cast_expression "(char *)*local_74" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_74" * identifier)))) ;)) (expression_statement "sVar17 = strlen((char *)*local_74);" (assignment_expression "sVar17 = strlen((char *)*local_74)" identifier = (call_expression "strlen((char *)*local_74)" identifier (argument_list "((char *)*local_74)" ( (cast_expression "(char *)*local_74" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_74" * identifier)) )))) ;) (expression_statement "__dest = (char *)xmalloc(sVar17 + 8);" (assignment_expression "__dest = (char *)xmalloc(sVar17 + 8)" identifier = (cast_expression "(char *)xmalloc(sVar17 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar17 + 8)" identifier (argument_list "(sVar17 + 8)" ( (binary_expression "sVar17 + 8" identifier + number_literal) ))))) ;) (if_statement "if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }" if (parenthesized_expression "(cVar3 != '@')" ( (binary_expression "cVar3 != '@'" identifier != (char_literal "'@'" ' character ')) )) (compound_statement "{\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }" { (expression_statement "pcVar11 = (char *)*local_74;" (assignment_expression "pcVar11 = (char *)*local_74" identifier = (cast_expression "(char *)*local_74" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_74" * identifier))) ;) (expression_statement "pcVar9 = strchr(pcVar11,0x40);" (assignment_expression "pcVar9 = strchr(pcVar11,0x40)" identifier = (call_expression "strchr(pcVar11,0x40)" identifier (argument_list "(pcVar11,0x40)" ( identifier , number_literal )))) ;) (expression_statement "pcVar12 = "_";" (assignment_expression "pcVar12 = "_"" identifier = (string_literal ""_"" " string_content ")) ;) (if_statement "if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\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                pcVar12 = pcVar1;\n              }" { (expression_statement "pcVar12 = pcVar1;" (assignment_expression "pcVar12 = pcVar1" identifier = identifier) ;) })) (expression_statement "sprintf(__dest,"%s%s",pcVar12,pcVar11);" (call_expression "sprintf(__dest,"%s%s",pcVar12,pcVar11)" identifier (argument_list "(__dest,"%s%s",pcVar12,pcVar11)" ( identifier , (string_literal ""%s%s"" " string_content ") , identifier , identifier ))) ;) (expression_statement "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),__dest,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 )))) ;) (if_statement "if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }" if (parenthesized_expression "((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01'))" ( (binary_expression "(iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')" (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (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 "'\x01'" ' escape_sequence ')) ))) )) (compound_statement "{\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }" { (if_statement "if (pcVar9 != (char *)0x0) goto LAB_00065e00;" 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)) )) (goto_statement "goto LAB_00065e00;" goto statement_identifier ;)) (expression_statement "free(__dest);" (call_expression "free(__dest)" identifier (argument_list "(__dest)" ( identifier ))) ;) (goto_statement "goto LAB_00065c0f;" goto statement_identifier ;) })) (expression_statement "pcVar11 = "_";" (assignment_expression "pcVar11 = "_"" identifier = (string_literal ""_"" " string_content ")) ;) (if_statement "if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\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                pcVar11 = pcVar1;\n              }" { (expression_statement "pcVar11 = pcVar1;" (assignment_expression "pcVar11 = pcVar1" identifier = identifier) ;) })) (expression_statement "sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);" (call_expression "sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74)" identifier (argument_list "(__dest,"%s%s%s","__imp_",pcVar11,*local_74)" ( identifier , (string_literal ""%s%s%s"" " string_content ") , (string_literal ""__imp_"" " string_content ") , identifier , (pointer_expression "*local_74" * identifier) ))) ;) (expression_statement "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),__dest,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 )))) ;) (if_statement "if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }" { (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (if_statement "if (pcVar9 != (char *)0x0) goto LAB_00065dc0;" 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)) )) (goto_statement "goto LAB_00065dc0;" goto statement_identifier ;)) }) (else_clause "else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }" else (compound_statement "{\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }" { (expression_statement "bVar20 = *(char *)(iVar10 + 0xc) == '\x01';" (assignment_expression "bVar20 = *(char *)(iVar10 + 0xc) == '\x01'" identifier = (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (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 "'\x01'" ' escape_sequence '))) ;) (if_statement "if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;" if (parenthesized_expression "((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))" ( (binary_expression "(pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01')" (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)) )) || (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (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 "'\x01'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00065b1c;" goto statement_identifier ;)) }))) (expression_statement "pcVar11 = "_";" (assignment_expression "pcVar11 = "_"" identifier = (string_literal ""_"" " string_content ")) ;) (if_statement "if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\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                pcVar11 = pcVar1;\n              }" { (expression_statement "pcVar11 = pcVar1;" (assignment_expression "pcVar11 = pcVar1" identifier = identifier) ;) })) (expression_statement "sprintf(__dest,"%s%s",pcVar11,*local_74);" (call_expression "sprintf(__dest,"%s%s",pcVar11,*local_74)" identifier (argument_list "(__dest,"%s%s",pcVar11,*local_74)" ( identifier , (string_literal ""%s%s"" " string_content ") , identifier , (pointer_expression "*local_74" * identifier) ))) ;) (expression_statement "sVar17 = strlen(__dest);" (assignment_expression "sVar17 = strlen(__dest)" identifier = (call_expression "strlen(__dest)" identifier (argument_list "(__dest)" ( identifier )))) ;) (expression_statement "pcVar11 = (char *)xmalloc(sVar17 + 3);" (assignment_expression "pcVar11 = (char *)xmalloc(sVar17 + 3)" identifier = (cast_expression "(char *)xmalloc(sVar17 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar17 + 3)" identifier (argument_list "(sVar17 + 3)" ( (binary_expression "sVar17 + 3" identifier + number_literal) ))))) ;) (expression_statement "strcpy(pcVar11,__dest);" (call_expression "strcpy(pcVar11,__dest)" identifier (argument_list "(pcVar11,__dest)" ( identifier , identifier ))) ;) (expression_statement "pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);" (assignment_expression "pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40)" identifier = (call_expression "strchr(pcVar11 + (*pcVar11 == '@'),0x40)" identifier (argument_list "(pcVar11 + (*pcVar11 == '@'),0x40)" ( (binary_expression "pcVar11 + (*pcVar11 == '@')" identifier + (parenthesized_expression "(*pcVar11 == '@')" ( (binary_expression "*pcVar11 == '@'" (pointer_expression "*pcVar11" * identifier) == (char_literal "'@'" ' character ')) ))) , number_literal )))) ;) (if_statement "if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }" if (parenthesized_expression "(pcVar12 != (char *)0x0)" ( (binary_expression "pcVar12 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pcVar12[1] = '\0';\n              }" { (expression_statement "pcVar12[1] = '\0';" (assignment_expression "pcVar12[1] = '\0'" (subscript_expression "pcVar12[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "pvVar6 = DAT_001d1224;" (assignment_expression "pvVar6 = DAT_001d1224" identifier = identifier) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "sVar17 = DAT_001d1228;" (assignment_expression "sVar17 = DAT_001d1228" identifier = identifier) ;) (while_statement "while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }" while (parenthesized_expression "(uVar19 < sVar17)" ( (binary_expression "uVar19 < sVar17" identifier < identifier) )) (compound_statement "{\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }" { (while_statement "while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }" { (expression_statement "uVar16 = uVar19 + sVar17 >> 1;" (assignment_expression "uVar16 = uVar19 + sVar17 >> 1" identifier = (binary_expression "uVar19 + sVar17 >> 1" (binary_expression "uVar19 + sVar17" identifier + identifier) >> number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);" (assignment_expression "puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8)" identifier = (cast_expression "(undefined4 *)((int)pvVar6 + uVar16 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar6 + uVar16 * 8)" ( (binary_expression "(int)pvVar6 + uVar16 * 8" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * 8" identifier * number_literal)) )))) ;) (expression_statement "iVar10 = strcmp(pcVar11,(char *)*puVar15);" (assignment_expression "iVar10 = strcmp(pcVar11,(char *)*puVar15)" identifier = (call_expression "strcmp(pcVar11,(char *)*puVar15)" identifier (argument_list "(pcVar11,(char *)*puVar15)" ( identifier , (cast_expression "(char *)*puVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier)) )))) ;) (if_statement "if (-1 < iVar10) break;" if (parenthesized_expression "(-1 < iVar10)" ( (binary_expression "-1 < iVar10" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "sVar17 = uVar16;" (assignment_expression "sVar17 = uVar16" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar19) goto LAB_00065a75;" if (parenthesized_expression "(uVar16 <= uVar19)" ( (binary_expression "uVar16 <= uVar19" identifier <= identifier) )) (goto_statement "goto LAB_00065a75;" goto statement_identifier ;)) })) (if_statement "if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }" { (expression_statement "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),puVar15[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 "puVar15[1]" identifier [ number_literal ]) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;" if (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (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 "'\x01'" ' escape_sequence ')) )) (goto_statement "goto LAB_00065d58;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "uVar19 = uVar16 + 1;" (assignment_expression "uVar19 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) })) (labeled_statement "LAB_00065a75:\n              sVar17 = DAT_001d1228;" statement_identifier : (expression_statement "sVar17 = DAT_001d1228;" (assignment_expression "sVar17 = DAT_001d1228" identifier = identifier) ;)) (expression_statement "pvVar6 = DAT_001d1224;" (assignment_expression "pvVar6 = DAT_001d1224" identifier = identifier) ;) (expression_statement "cVar3 = *pcVar11;" (assignment_expression "cVar3 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (if_statement "if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }" if (parenthesized_expression "(cVar3 != '?')" ( (binary_expression "cVar3 != '?'" identifier != (char_literal "'?'" ' character ')) )) (compound_statement "{\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }" { (expression_statement "local_78 = DAT_001d1224;" (assignment_expression "local_78 = DAT_001d1224" identifier = identifier) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }" { (if_statement "if (cVar3 == '@') goto LAB_00065f40;" if (parenthesized_expression "(cVar3 == '@')" ( (binary_expression "cVar3 == '@'" identifier == (char_literal "'@'" ' character ')) )) (goto_statement "goto LAB_00065f40;" goto statement_identifier ;)) (expression_statement "sVar13 = strlen(pcVar11);" (assignment_expression "sVar13 = strlen(pcVar11)" identifier = (call_expression "strlen(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier )))) ;) (expression_statement "(pcVar11 + sVar13)[0] = '@';" (assignment_expression "(pcVar11 + sVar13)[0] = '@'" (subscript_expression "(pcVar11 + sVar13)[0]" (parenthesized_expression "(pcVar11 + sVar13)" ( (binary_expression "pcVar11 + sVar13" identifier + identifier) )) [ number_literal ]) = (char_literal "'@'" ' character ')) ;) (expression_statement "(pcVar11 + sVar13)[1] = '\0';" (assignment_expression "(pcVar11 + sVar13)[1] = '\0'" (subscript_expression "(pcVar11 + sVar13)[1]" (parenthesized_expression "(pcVar11 + sVar13)" ( (binary_expression "pcVar11 + sVar13" identifier + identifier) )) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (while_statement "while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }" while (parenthesized_expression "(uVar19 < sVar17)" ( (binary_expression "uVar19 < sVar17" identifier < identifier) )) (compound_statement "{\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }" { (while_statement "while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }" { (expression_statement "uVar16 = sVar17 + uVar19 >> 1;" (assignment_expression "uVar16 = sVar17 + uVar19 >> 1" identifier = (binary_expression "sVar17 + uVar19 >> 1" (binary_expression "sVar17 + uVar19" identifier + identifier) >> number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);" (assignment_expression "puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8)" identifier = (cast_expression "(undefined4 *)((int)pvVar6 + uVar16 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar6 + uVar16 * 8)" ( (binary_expression "(int)pvVar6 + uVar16 * 8" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * 8" identifier * number_literal)) )))) ;) (expression_statement "iVar10 = strcmp(pcVar11,(char *)*puVar15);" (assignment_expression "iVar10 = strcmp(pcVar11,(char *)*puVar15)" identifier = (call_expression "strcmp(pcVar11,(char *)*puVar15)" identifier (argument_list "(pcVar11,(char *)*puVar15)" ( identifier , (cast_expression "(char *)*puVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier)) )))) ;) (if_statement "if (-1 < iVar10) break;" if (parenthesized_expression "(-1 < iVar10)" ( (binary_expression "-1 < iVar10" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "sVar17 = uVar16;" (assignment_expression "sVar17 = uVar16" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar19) goto LAB_00065e95;" if (parenthesized_expression "(uVar16 <= uVar19)" ( (binary_expression "uVar16 <= uVar19" identifier <= identifier) )) (goto_statement "goto LAB_00065e95;" goto statement_identifier ;)) })) (if_statement "if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }" { (expression_statement "iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" identifier = (call_expression "bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),puVar15[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 "puVar15[1]" identifier [ number_literal ]) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;" if (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (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 "'\x01'" ' escape_sequence ')) )) (goto_statement "goto LAB_00065d58;" goto statement_identifier ;)) (expression_statement "cVar3 = *pcVar11;" (assignment_expression "cVar3 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (goto_statement "goto joined_r0x00066040;" goto statement_identifier ;) })) (expression_statement "uVar19 = uVar16 + 1;" (assignment_expression "uVar19 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) })) (labeled_statement "LAB_00065e95:\n                  cVar3 = *pcVar11;" statement_identifier : (expression_statement "cVar3 = *pcVar11;" (assignment_expression "cVar3 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;)) (labeled_statement "joined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }" statement_identifier : (if_statement "if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }" if (parenthesized_expression "((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0))" ( (binary_expression "(cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)" (parenthesized_expression "(cVar3 == '_')" ( (binary_expression "cVar3 == '_'" identifier == (char_literal "'_'" ' character ')) )) && (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                    *pcVar11 = '@';\n                  }" { (expression_statement "*pcVar11 = '@';" (assignment_expression "*pcVar11 = '@'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'@'" ' character ')) ;) }) (else_clause "else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }" else (compound_statement "{\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }" { (expression_statement "memmove(pcVar11 + 1,pcVar11,sVar13 + 2);" (call_expression "memmove(pcVar11 + 1,pcVar11,sVar13 + 2)" identifier (argument_list "(pcVar11 + 1,pcVar11,sVar13 + 2)" ( (binary_expression "pcVar11 + 1" identifier + number_literal) , identifier , (binary_expression "sVar13 + 2" identifier + number_literal) ))) ;) (expression_statement "*pcVar11 = '@';" (assignment_expression "*pcVar11 = '@'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'@'" ' character ')) ;) })))) (expression_statement "pvVar6 = DAT_001d1224;" (assignment_expression "pvVar6 = DAT_001d1224" identifier = identifier) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "sVar17 = DAT_001d1228;" (assignment_expression "sVar17 = DAT_001d1228" identifier = identifier) ;) (while_statement "while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }" while (parenthesized_expression "(uVar19 < sVar17)" ( (binary_expression "uVar19 < sVar17" identifier < identifier) )) (compound_statement "{\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }" { (while_statement "while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }" { (expression_statement "uVar16 = sVar17 + uVar19 >> 1;" (assignment_expression "uVar16 = sVar17 + uVar19 >> 1" identifier = (binary_expression "sVar17 + uVar19 >> 1" (binary_expression "sVar17 + uVar19" identifier + identifier) >> number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);" (assignment_expression "puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8)" identifier = (cast_expression "(undefined4 *)((int)pvVar6 + uVar16 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar6 + uVar16 * 8)" ( (binary_expression "(int)pvVar6 + uVar16 * 8" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * 8" identifier * number_literal)) )))) ;) (expression_statement "iVar10 = strcmp(pcVar11,(char *)*puVar15);" (assignment_expression "iVar10 = strcmp(pcVar11,(char *)*puVar15)" identifier = (call_expression "strcmp(pcVar11,(char *)*puVar15)" identifier (argument_list "(pcVar11,(char *)*puVar15)" ( identifier , (cast_expression "(char *)*puVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier)) )))) ;) (if_statement "if (-1 < iVar10) break;" if (parenthesized_expression "(-1 < iVar10)" ( (binary_expression "-1 < iVar10" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "sVar17 = uVar16;" (assignment_expression "sVar17 = uVar16" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar19) goto LAB_00065b08;" if (parenthesized_expression "(uVar16 <= uVar19)" ( (binary_expression "uVar16 <= uVar19" identifier <= identifier) )) (goto_statement "goto LAB_00065b08;" goto statement_identifier ;)) })) (if_statement "if (iVar10 == 0) goto LAB_00065d30;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00065d30;" goto statement_identifier ;)) (expression_statement "uVar19 = uVar16 + 1;" (assignment_expression "uVar19 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) })) }) (else_clause "else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }" else (compound_statement "{\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }" { (if_statement "if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }" if (parenthesized_expression "(cVar3 == '@')" ( (binary_expression "cVar3 == '@'" identifier == (char_literal "'@'" ' character ')) )) (compound_statement "{\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }" { (labeled_statement "LAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }" statement_identifier : (if_statement "if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\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                      strcpy(pcVar11,pcVar11 + 1);\n                    }" { (expression_statement "strcpy(pcVar11,pcVar11 + 1);" (call_expression "strcpy(pcVar11,pcVar11 + 1)" identifier (argument_list "(pcVar11,pcVar11 + 1)" ( identifier , (binary_expression "pcVar11 + 1" identifier + number_literal) ))) ;) }) (else_clause "else {\n                      *pcVar11 = '_';\n                    }" else (compound_statement "{\n                      *pcVar11 = '_';\n                    }" { (expression_statement "*pcVar11 = '_';" (assignment_expression "*pcVar11 = '_'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'_'" ' character ')) ;) })))) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = sVar17;" (assignment_expression "uVar16 = sVar17" identifier = identifier) ;) (while_statement "while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }" while (parenthesized_expression "(uVar19 < uVar16)" ( (binary_expression "uVar19 < uVar16" identifier < identifier) )) (compound_statement "{\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }" { (while_statement "while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }" { (expression_statement "uVar18 = uVar16 + uVar19 >> 1;" (assignment_expression "uVar18 = uVar16 + uVar19 >> 1" identifier = (binary_expression "uVar16 + uVar19 >> 1" (binary_expression "uVar16 + uVar19" identifier + identifier) >> number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);" (assignment_expression "puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8)" identifier = (cast_expression "(undefined4 *)((int)pvVar6 + uVar18 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar6 + uVar18 * 8)" ( (binary_expression "(int)pvVar6 + uVar18 * 8" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar18 * 8" identifier * number_literal)) )))) ;) (expression_statement "iVar10 = strcmp(pcVar11,(char *)*puVar15);" (assignment_expression "iVar10 = strcmp(pcVar11,(char *)*puVar15)" identifier = (call_expression "strcmp(pcVar11,(char *)*puVar15)" identifier (argument_list "(pcVar11,(char *)*puVar15)" ( identifier , (cast_expression "(char *)*puVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier)) )))) ;) (if_statement "if (-1 < iVar10) break;" if (parenthesized_expression "(-1 < iVar10)" ( (binary_expression "-1 < iVar10" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar16 = uVar18;" (assignment_expression "uVar16 = uVar18" identifier = identifier) ;) (if_statement "if (uVar18 <= uVar19) goto LAB_00065fad;" if (parenthesized_expression "(uVar18 <= uVar19)" ( (binary_expression "uVar18 <= uVar19" identifier <= identifier) )) (goto_statement "goto LAB_00065fad;" goto statement_identifier ;)) })) (if_statement "if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }" { (expression_statement "iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" identifier = (call_expression "bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),puVar15[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 "puVar15[1]" identifier [ number_literal ]) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;" if (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (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 "'\x01'" ' escape_sequence ')) )) (goto_statement "goto LAB_00065d58;" goto statement_identifier ;)) (expression_statement "local_78 = DAT_001d1224;" (assignment_expression "local_78 = DAT_001d1224" identifier = identifier) ;) (expression_statement "sVar17 = DAT_001d1228;" (assignment_expression "sVar17 = DAT_001d1228" identifier = identifier) ;) (break_statement "break;" break ;) })) (expression_statement "uVar19 = uVar18 + 1;" (assignment_expression "uVar19 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) })) (labeled_statement "LAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;" statement_identifier : (if_statement "if (pcVar12 != (char *)0x0) goto LAB_00065aa8;" if (parenthesized_expression "(pcVar12 != (char *)0x0)" ( (binary_expression "pcVar12 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00065aa8;" goto statement_identifier ;))) }) (else_clause "else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }" else (compound_statement "{\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }" { (labeled_statement "LAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);" statement_identifier : (expression_statement "pcVar12 = strchr(pcVar11,0x40);" (assignment_expression "pcVar12 = strchr(pcVar11,0x40)" identifier = (call_expression "strchr(pcVar11,0x40)" identifier (argument_list "(pcVar11,0x40)" ( identifier , number_literal )))) ;)) (expression_statement "*pcVar12 = '\0';" (assignment_expression "*pcVar12 = '\0'" (pointer_expression "*pcVar12" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (while_statement "while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }" while (parenthesized_expression "(uVar19 < sVar17)" ( (binary_expression "uVar19 < sVar17" identifier < identifier) )) (compound_statement "{\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }" { (while_statement "while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }" { (expression_statement "uVar16 = sVar17 + uVar19 >> 1;" (assignment_expression "uVar16 = sVar17 + uVar19 >> 1" identifier = (binary_expression "sVar17 + uVar19 >> 1" (binary_expression "sVar17 + uVar19" identifier + identifier) >> number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);" (assignment_expression "puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8)" identifier = (cast_expression "(undefined4 *)((int)local_78 + uVar16 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_78 + uVar16 * 8)" ( (binary_expression "(int)local_78 + uVar16 * 8" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * 8" identifier * number_literal)) )))) ;) (expression_statement "iVar10 = strcmp(pcVar11,(char *)*puVar15);" (assignment_expression "iVar10 = strcmp(pcVar11,(char *)*puVar15)" identifier = (call_expression "strcmp(pcVar11,(char *)*puVar15)" identifier (argument_list "(pcVar11,(char *)*puVar15)" ( identifier , (cast_expression "(char *)*puVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier)) )))) ;) (if_statement "if (-1 < iVar10) break;" if (parenthesized_expression "(-1 < iVar10)" ( (binary_expression "-1 < iVar10" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "sVar17 = uVar16;" (assignment_expression "sVar17 = uVar16" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar19) goto LAB_00065b08;" if (parenthesized_expression "(uVar16 <= uVar19)" ( (binary_expression "uVar16 <= uVar19" identifier <= identifier) )) (goto_statement "goto LAB_00065b08;" goto statement_identifier ;)) })) (if_statement "if (iVar10 == 0) goto LAB_00065d30;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00065d30;" goto statement_identifier ;)) (expression_statement "uVar19 = uVar16 + 1;" (assignment_expression "uVar19 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) })) }))) })) (goto_statement "goto LAB_00065b08;" goto statement_identifier ;) })) (expression_statement "strcpy(__dest,(char *)*local_74);" (call_expression "strcpy(__dest,(char *)*local_74)" identifier (argument_list "(__dest,(char *)*local_74)" ( identifier , (cast_expression "(char *)*local_74" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_74" * identifier)) ))) ;) (expression_statement "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),__dest,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 )))) ;) (if_statement "if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }" if (parenthesized_expression "((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01'))" ( (binary_expression "(iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')" (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (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 "'\x01'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }" { (labeled_statement "LAB_00065e00:\n              free(__dest);" statement_identifier : (expression_statement "free(__dest);" (call_expression "free(__dest)" identifier (argument_list "(__dest)" ( identifier ))) ;)) (goto_statement "goto LAB_00065c0f;" goto statement_identifier ;) })) (expression_statement "sprintf(__dest,"%s%s","__imp_",*local_74);" (call_expression "sprintf(__dest,"%s%s","__imp_",*local_74)" identifier (argument_list "(__dest,"%s%s","__imp_",*local_74)" ( identifier , (string_literal ""%s%s"" " string_content ") , (string_literal ""__imp_"" " string_content ") , (pointer_expression "*local_74" * identifier) ))) ;) (expression_statement "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),__dest,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 )))) ;) (if_statement "if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }" { (expression_statement "bVar20 = *(char *)(iVar10 + 0xc) == '\x01';" (assignment_expression "bVar20 = *(char *)(iVar10 + 0xc) == '\x01'" identifier = (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (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 "'\x01'" ' escape_sequence '))) ;) (goto_statement "goto LAB_00065b1c;" goto statement_identifier ;) })) (labeled_statement "LAB_00065dc0:\n            free(__dest);" statement_identifier : (expression_statement "free(__dest);" (call_expression "free(__dest)" identifier (argument_list "(__dest)" ( identifier ))) ;)) (goto_statement "goto LAB_00065b37;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_00065b8f;" goto statement_identifier ;) }))) (labeled_statement "LAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }" statement_identifier : (ERROR "}" }) (labeled_statement "joined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }" statement_identifier : (while_statement "while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }" while (parenthesized_expression "(__ptr = DAT_001d1224, sVar17 != 0)" ( (comma_expression "__ptr = DAT_001d1224, sVar17 != 0" (assignment_expression "__ptr = DAT_001d1224" identifier = identifier) , (binary_expression "sVar17 != 0" identifier != number_literal)) )) (compound_statement "{\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }" { (expression_statement "sVar17 = sVar17 - 1;" (assignment_expression "sVar17 = sVar17 - 1" identifier = (binary_expression "sVar17 - 1" identifier - number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);" (assignment_expression "puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8)" identifier = (cast_expression "(undefined4 *)((int)DAT_001d1224 + sVar17 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)DAT_001d1224 + sVar17 * 8)" ( (binary_expression "(int)DAT_001d1224 + sVar17 * 8" (cast_expression "(int)DAT_001d1224" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "sVar17 * 8" identifier * number_literal)) )))) ;) (expression_statement "DAT_001d1224 = pvVar6;" (assignment_expression "DAT_001d1224 = pvVar6" identifier = identifier) ;) (expression_statement "DAT_001d1228 = sVar17;" (assignment_expression "DAT_001d1228 = sVar17" identifier = identifier) ;) (expression_statement "free((void *)*puVar15);" (call_expression "free((void *)*puVar15)" identifier (argument_list "((void *)*puVar15)" ( (cast_expression "(void *)*puVar15" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier)) ))) ;) (expression_statement "pvVar6 = DAT_001d1224;" (assignment_expression "pvVar6 = DAT_001d1224" identifier = identifier) ;) (expression_statement "DAT_001d1224 = __ptr;" (assignment_expression "DAT_001d1224 = __ptr" identifier = identifier) ;) })))) (expression_statement "DAT_001d1224 = pvVar6;" (assignment_expression "DAT_001d1224 = pvVar6" identifier = identifier) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) })) (return_statement "return;" return ;) (labeled_statement "LAB_00065d30:\n  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);" statement_identifier : (expression_statement "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),puVar15[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 "puVar15[1]" identifier [ number_literal ]) , number_literal , number_literal , number_literal )))) ;)) (if_statement "if (*(char *)(iVar10 + 0xc) == '\x01') {\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }" if (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (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 "'\x01'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }" { (labeled_statement "LAB_00065d58:\n    free(pcVar11);" statement_identifier : (expression_statement "free(pcVar11);" (call_expression "free(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;)) (expression_statement "free(__dest);" (call_expression "free(__dest)" identifier (argument_list "(__dest)" ( identifier ))) ;) }) (else_clause "else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }" else (compound_statement "{\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }" { (labeled_statement "LAB_00065b08:\n    free(pcVar11);" statement_identifier : (expression_statement "free(pcVar11);" (call_expression "free(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;)) (labeled_statement "LAB_00065b1c:\n    free(__dest);" statement_identifier : (expression_statement "free(__dest);" (call_expression "free(__dest)" identifier (argument_list "(__dest)" ( identifier ))) ;)) (if_statement "if (!bVar20) goto LAB_00065b37;" if (parenthesized_expression "(!bVar20)" ( (unary_expression "!bVar20" ! identifier) )) (goto_statement "goto LAB_00065b37;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00065c0f:\n  if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }" statement_identifier : (if_statement "if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }" if (parenthesized_expression "(!bVar5)" ( (unary_expression "!bVar5" ! identifier) )) (compound_statement "{\n    FUN_00063470();\n    FUN_00062700();\n  }" { (expression_statement "FUN_00063470();" (call_expression "FUN_00063470()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00062700();" (call_expression "FUN_00062700()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "FUN_00062c20();" (call_expression "FUN_00062c20()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00062700();" (call_expression "FUN_00062700()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) (labeled_statement "LAB_00065b37:\n  local_70 = local_70 + 1;" statement_identifier : (expression_statement "local_70 = local_70 + 1;" (assignment_expression "local_70 = local_70 + 1" identifier = (binary_expression "local_70 + 1" identifier + number_literal)) ;)) (if_statement "if (*(int *)(DAT_001d1218 + 0x38) <= local_70) goto LAB_00065b67;" if (parenthesized_expression "(*(int *)(DAT_001d1218 + 0x38) <= local_70)" ( (binary_expression "*(int *)(DAT_001d1218 + 0x38) <= local_70" (pointer_expression "*(int *)(DAT_001d1218 + 0x38)" * (cast_expression "(int *)(DAT_001d1218 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1218 + 0x38)" ( (binary_expression "DAT_001d1218 + 0x38" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_00065b67;" goto statement_identifier ;)) (expression_statement "local_74 = local_74 + 6;" (assignment_expression "local_74 = local_74 + 6" identifier = (binary_expression "local_74 + 6" identifier + number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)*local_64;" (assignment_expression "puVar15 = (undefined4 *)*local_64" identifier = (cast_expression "(undefined4 *)*local_64" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_64" * identifier))) ;) (expression_statement "local_64 = local_64 + 6;" (assignment_expression "local_64 = local_64 + 6" identifier = (binary_expression "local_64 + 6" identifier + number_literal)) ;) (if_statement "if (puVar15 != local_68) goto LAB_00065b67;" if (parenthesized_expression "(puVar15 != local_68)" ( (binary_expression "puVar15 != local_68" identifier != identifier) )) (goto_statement "goto LAB_00065b67;" goto statement_identifier ;)) (goto_statement "goto LAB_000658a0;" goto statement_identifier ;) (labeled_statement "LAB_00065b67:\n  __ptr_00 = DAT_001d1238;" statement_identifier : (expression_statement "__ptr_00 = DAT_001d1238;" (assignment_expression "__ptr_00 = DAT_001d1238" identifier = identifier) ;)) (if_statement "if (bVar5) {\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }" { (expression_statement "FUN_000637c0();" (call_expression "FUN_000637c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00062700();" (call_expression "FUN_00062700()" identifier (argument_list "()" ( ))) ;) (expression_statement "__ptr_00 = DAT_001d1238;" (assignment_expression "__ptr_00 = DAT_001d1238" identifier = identifier) ;) })) (labeled_statement "LAB_00065b8f:\n  free(__ptr_00);" statement_identifier : (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;)) (expression_statement "local_68 = (undefined4 *)*local_68;" (assignment_expression "local_68 = (undefined4 *)*local_68" identifier = (cast_expression "(undefined4 *)*local_68" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_68" * identifier))) ;) (expression_statement "pvVar6 = DAT_001d1224;" (assignment_expression "pvVar6 = DAT_001d1224" identifier = identifier) ;) (expression_statement "sVar17 = DAT_001d1228;" (assignment_expression "sVar17 = DAT_001d1228" identifier = identifier) ;) (if_statement "if (local_68 == (undefined4 *)0x0) goto joined_r0x00065bbb;" if (parenthesized_expression "(local_68 == (undefined4 *)0x0)" ( (binary_expression "local_68 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto joined_r0x00065bbb;" goto statement_identifier ;)) (goto_statement "goto LAB_000657a0;" 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_process_import_defs(bfd *output_bfd,bfd_link_info *linfo)\n\n{\n  char *pcVar1;\n  key_value *pkVar2;\n  byte bVar3;\n  char cVar4;\n  def_file_import *pdVar5;\n  def_file_module *pdVar6;\n  bool bVar7;\n  key_value *pkVar8;\n  undefined *puVar9;\n  def_file_module **ppdVar10;\n  byte *__ptr;\n  size_t sVar11;\n  char *__dest;\n  char *pcVar12;\n  char *pcVar13;\n  char *pcVar14;\n  bfd *pbVar15;\n  byte *pbVar16;\n  key_value *pkVar17;\n  uint uVar18;\n  uint uVar19;\n  int iVar20;\n  uint uVar21;\n  uint uVar22;\n  bool bVar23;\n  key_value *local_78;\n  def_file_import *local_74;\n  int local_70;\n  def_file_module *local_68;\n  def_file_module **local_64;\n  def_file_export exp;\n  \n  pe_dll_id_target(output_bfd->xvec->name);\n  if (pe_def_file != (def_file *)0x0) {\n    pdVar5 = pe_def_file->imports;\n    pcVar1 = "";\n    undef_count = 0;\n    bfd_link_hash_traverse(link_info.hash,pe_undef_count,"");\n    udef_table = (key_value *)xmalloc(undef_count << 3);\n    undef_count = 0;\n    bfd_link_hash_traverse(link_info.hash,pe_undef_fill,"");\n    qsort(udef_table,undef_count,8,undef_sort_cmp);\n    puVar9 = PTR__sch_istable_001cefa0;\n    for (local_68 = pe_def_file->modules; pkVar8 = udef_table, iVar20 = undef_count,\n        local_68 != (def_file_module *)0x0; local_68 = local_68->next) {\nLAB_000657a0:\n      if (0 < pe_def_file->num_imports) {\n        local_70 = 0;\n        if (local_68 != pdVar5->module) {\n          local_70 = 0;\n          ppdVar10 = &pdVar5[1].module;\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == pe_def_file->num_imports) goto LAB_000657df;\n            pdVar6 = *ppdVar10;\n            ppdVar10 = ppdVar10 + 6;\n          } while (pdVar6 != local_68);\n        }\n        dll_filename = local_68->name;\n        __ptr = (byte *)xstrdup(dll_filename);\n        bVar3 = *__ptr;\n        pbVar16 = __ptr;\n        dll_symname = (char *)__ptr;\n        while (bVar3 != 0) {\n          if ((puVar9[(uint)bVar3 * 2] & 0x8c) == 0) {\n            *pbVar16 = 0x5f;\n          }\n          pbVar16 = pbVar16 + 1;\n          bVar3 = *pbVar16;\n        }\n        if ((local_70 < pe_def_file->num_imports) &&\n           (local_74 = pdVar5 + local_70, local_68 == local_74->module)) {\n          local_64 = &pdVar5[local_70 + 1].module;\n          bVar7 = false;\nLAB_000658a0:\n          cVar4 = *local_74->internal_name;\n          sVar11 = strlen(local_74->internal_name);\n          __dest = (char *)xmalloc(sVar11 + 8);\n          if (cVar4 != '@') {\n            pcVar13 = local_74->internal_name;\n            pcVar12 = strchr(pcVar13,0x40);\n            pcVar14 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar14 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar14,pcVar13);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\n              if (pcVar12 != (char *)0x0) goto LAB_00065e00;\n              uVar22 = 1;\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s%s","__imp_",pcVar13,local_74->internal_name);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if (iVar20 == 0) {\n              bVar23 = false;\n              if (pcVar12 != (char *)0x0) goto LAB_00065dc0;\n            }\n            else {\n              bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\n              if ((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))\n              goto LAB_00065d23;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar13,local_74->internal_name);\n            sVar11 = strlen(__dest);\n            pcVar13 = (char *)xmalloc(sVar11 + 3);\n            strcpy(pcVar13,__dest);\n            pcVar14 = strchr(pcVar13 + (*pcVar13 == '@'),0x40);\n            if (pcVar14 != (char *)0x0) {\n              pcVar14[1] = '\0';\n            }\n            pkVar8 = udef_table;\n            uVar22 = 0;\n            uVar18 = undef_count;\n            while (uVar22 < uVar18) {\n              while( true ) {\n                uVar19 = uVar22 + uVar18 >> 1;\n                iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);\n                if (-1 < iVar20) break;\n                uVar18 = uVar19;\n                if (uVar19 <= uVar22) goto LAB_00065a75;\n              }\n              if (iVar20 == 0) {\n                iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);\n                if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                break;\n              }\n              uVar22 = uVar19 + 1;\n            }\nLAB_00065a75:\n            uVar22 = undef_count;\n            pkVar8 = udef_table;\n            cVar4 = *pcVar13;\n            if (cVar4 != '?') {\n              local_78 = udef_table;\n              if (pcVar14 == (char *)0x0) {\n                if (cVar4 == '@') goto LAB_00065f40;\n                sVar11 = strlen(pcVar13);\n                (pcVar13 + sVar11)[0] = '@';\n                (pcVar13 + sVar11)[1] = '\0';\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }\nLAB_00065e95:\n                cVar4 = *pcVar13;\njoined_r0x00066040:\n                if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }\n                pkVar8 = udef_table;\n                uVar22 = 0;\n                uVar18 = undef_count;\n                while (uVar22 < uVar18) {\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }\n              }\n              else {\n                if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }\n              }\n            }\n            goto LAB_00065b08;\n          }\n          strcpy(__dest,local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\nLAB_00065e00:\n            uVar22 = 1;\n            free(__dest);\n            goto LAB_00065c0f;\n          }\n          sprintf(__dest,"%s%s","__imp_",local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if (iVar20 != 0) {\n            bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\nLAB_00065d23:\n            uVar22 = 0;\n            goto LAB_00065b1c;\n          }\nLAB_00065dc0:\n          free(__dest);\n          goto LAB_00065b37;\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (pkVar17 = udef_table, iVar20 != 0) {\n      iVar20 = iVar20 + -1;\n      pkVar2 = udef_table + iVar20;\n      udef_table = pkVar8;\n      undef_count = iVar20;\n      free(pkVar2->key);\n      pkVar8 = udef_table;\n      udef_table = pkVar17;\n    }\n    udef_table = pkVar8;\n    free(pkVar17);\n  }\n  return;\nLAB_00065d30:\n  iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n  if (*(char *)(iVar20 + 0xc) == '\x01') {\nLAB_00065d58:\n    uVar22 = 1;\n    free(pcVar13);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    uVar22 = 1;\n    free(pcVar13);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar23) goto LAB_00065b37;\n  }\nLAB_00065c0f:\n  if (!bVar7) {\n    pbVar15 = make_head(output_bfd);\n    add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n  }\n  exp.internal_name = local_74->internal_name;\n  exp.name = local_74->name;\n  exp.its_name = local_74->its_name;\n  exp.ordinal = local_74->ordinal;\n  exp.hint = exp.ordinal;\n  if (exp.ordinal < 0) {\n    exp.hint = 0;\n  }\n  exp.flag_noname = exp.name == (char *)0x0;\n  exp.flag_private = '\0';\n  exp.flag_constant = '\0';\n  exp.flag_data = (char)local_74->data;\n  pbVar15 = make_one(&exp,output_bfd,exp.flag_data == '\0' & uVar22);\n  add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n  bVar7 = true;\nLAB_00065b37:\n  local_70 = local_70 + 1;\n  if (pe_def_file->num_imports <= local_70) goto LAB_00065b67;\n  local_74 = local_74 + 1;\n  pdVar6 = *local_64;\n  local_64 = local_64 + 6;\n  if (pdVar6 != local_68) goto LAB_00065b67;\n  goto LAB_000658a0;\nLAB_00065b67:\n  __ptr = (byte *)dll_symname;\n  if (bVar7) {\n    pbVar15 = make_tail(output_bfd);\n    add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n    __ptr = (byte *)dll_symname;\n  }\nLAB_00065b8f:\n  free(__ptr);\n  local_68 = local_68->next;\n  pkVar8 = udef_table;\n  iVar20 = undef_count;\n  if (local_68 == (def_file_module *)0x0) goto joined_r0x00065bbb;\n  goto LAB_000657a0;\n}\n\n" comment comment (function_definition "void pe_process_import_defs(bfd *output_bfd,bfd_link_info *linfo)\n\n{\n  char *pcVar1;\n  key_value *pkVar2;\n  byte bVar3;\n  char cVar4;\n  def_file_import *pdVar5;\n  def_file_module *pdVar6;\n  bool bVar7;\n  key_value *pkVar8;\n  undefined *puVar9;\n  def_file_module **ppdVar10;\n  byte *__ptr;\n  size_t sVar11;\n  char *__dest;\n  char *pcVar12;\n  char *pcVar13;\n  char *pcVar14;\n  bfd *pbVar15;\n  byte *pbVar16;\n  key_value *pkVar17;\n  uint uVar18;\n  uint uVar19;\n  int iVar20;\n  uint uVar21;\n  uint uVar22;\n  bool bVar23;\n  key_value *local_78;\n  def_file_import *local_74;\n  int local_70;\n  def_file_module *local_68;\n  def_file_module **local_64;\n  def_file_export exp;\n  \n  pe_dll_id_target(output_bfd->xvec->name);\n  if (pe_def_file != (def_file *)0x0) {\n    pdVar5 = pe_def_file->imports;\n    pcVar1 = "";\n    undef_count = 0;\n    bfd_link_hash_traverse(link_info.hash,pe_undef_count,"");\n    udef_table = (key_value *)xmalloc(undef_count << 3);\n    undef_count = 0;\n    bfd_link_hash_traverse(link_info.hash,pe_undef_fill,"");\n    qsort(udef_table,undef_count,8,undef_sort_cmp);\n    puVar9 = PTR__sch_istable_001cefa0;\n    for (local_68 = pe_def_file->modules; pkVar8 = udef_table, iVar20 = undef_count,\n        local_68 != (def_file_module *)0x0; local_68 = local_68->next) {\nLAB_000657a0:\n      if (0 < pe_def_file->num_imports) {\n        local_70 = 0;\n        if (local_68 != pdVar5->module) {\n          local_70 = 0;\n          ppdVar10 = &pdVar5[1].module;\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == pe_def_file->num_imports) goto LAB_000657df;\n            pdVar6 = *ppdVar10;\n            ppdVar10 = ppdVar10 + 6;\n          } while (pdVar6 != local_68);\n        }\n        dll_filename = local_68->name;\n        __ptr = (byte *)xstrdup(dll_filename);\n        bVar3 = *__ptr;\n        pbVar16 = __ptr;\n        dll_symname = (char *)__ptr;\n        while (bVar3 != 0) {\n          if ((puVar9[(uint)bVar3 * 2] & 0x8c) == 0) {\n            *pbVar16 = 0x5f;\n          }\n          pbVar16 = pbVar16 + 1;\n          bVar3 = *pbVar16;\n        }\n        if ((local_70 < pe_def_file->num_imports) &&\n           (local_74 = pdVar5 + local_70, local_68 == local_74->module)) {\n          local_64 = &pdVar5[local_70 + 1].module;\n          bVar7 = false;\nLAB_000658a0:\n          cVar4 = *local_74->internal_name;\n          sVar11 = strlen(local_74->internal_name);\n          __dest = (char *)xmalloc(sVar11 + 8);\n          if (cVar4 != '@') {\n            pcVar13 = local_74->internal_name;\n            pcVar12 = strchr(pcVar13,0x40);\n            pcVar14 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar14 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar14,pcVar13);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\n              if (pcVar12 != (char *)0x0) goto LAB_00065e00;\n              uVar22 = 1;\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s%s","__imp_",pcVar13,local_74->internal_name);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if (iVar20 == 0) {\n              bVar23 = false;\n              if (pcVar12 != (char *)0x0) goto LAB_00065dc0;\n            }\n            else {\n              bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\n              if ((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))\n              goto LAB_00065d23;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar13,local_74->internal_name);\n            sVar11 = strlen(__dest);\n            pcVar13 = (char *)xmalloc(sVar11 + 3);\n            strcpy(pcVar13,__dest);\n            pcVar14 = strchr(pcVar13 + (*pcVar13 == '@'),0x40);\n            if (pcVar14 != (char *)0x0) {\n              pcVar14[1] = '\0';\n            }\n            pkVar8 = udef_table;\n            uVar22 = 0;\n            uVar18 = undef_count;\n            while (uVar22 < uVar18) {\n              while( true ) {\n                uVar19 = uVar22 + uVar18 >> 1;\n                iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);\n                if (-1 < iVar20) break;\n                uVar18 = uVar19;\n                if (uVar19 <= uVar22) goto LAB_00065a75;\n              }\n              if (iVar20 == 0) {\n                iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);\n                if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                break;\n              }\n              uVar22 = uVar19 + 1;\n            }\nLAB_00065a75:\n            uVar22 = undef_count;\n            pkVar8 = udef_table;\n            cVar4 = *pcVar13;\n            if (cVar4 != '?') {\n              local_78 = udef_table;\n              if (pcVar14 == (char *)0x0) {\n                if (cVar4 == '@') goto LAB_00065f40;\n                sVar11 = strlen(pcVar13);\n                (pcVar13 + sVar11)[0] = '@';\n                (pcVar13 + sVar11)[1] = '\0';\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }\nLAB_00065e95:\n                cVar4 = *pcVar13;\njoined_r0x00066040:\n                if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }\n                pkVar8 = udef_table;\n                uVar22 = 0;\n                uVar18 = undef_count;\n                while (uVar22 < uVar18) {\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }\n              }\n              else {\n                if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }\n              }\n            }\n            goto LAB_00065b08;\n          }\n          strcpy(__dest,local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\nLAB_00065e00:\n            uVar22 = 1;\n            free(__dest);\n            goto LAB_00065c0f;\n          }\n          sprintf(__dest,"%s%s","__imp_",local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if (iVar20 != 0) {\n            bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\nLAB_00065d23:\n            uVar22 = 0;\n            goto LAB_00065b1c;\n          }\nLAB_00065dc0:\n          free(__dest);\n          goto LAB_00065b37;\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (pkVar17 = udef_table, iVar20 != 0) {\n      iVar20 = iVar20 + -1;\n      pkVar2 = udef_table + iVar20;\n      udef_table = pkVar8;\n      undef_count = iVar20;\n      free(pkVar2->key);\n      pkVar8 = udef_table;\n      udef_table = pkVar17;\n    }\n    udef_table = pkVar8;\n    free(pkVar17);\n  }\n  return;\nLAB_00065d30:\n  iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n  if (*(char *)(iVar20 + 0xc) == '\x01') {\nLAB_00065d58:\n    uVar22 = 1;\n    free(pcVar13);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    uVar22 = 1;\n    free(pcVar13);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar23) goto LAB_00065b37;\n  }\nLAB_00065c0f:\n  if (!bVar7) {\n    pbVar15 = make_head(output_bfd);\n    add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n  }\n  exp.internal_name = local_74->internal_name;\n  exp.name = local_74->name;\n  exp.its_name = local_74->its_name;\n  exp.ordinal = local_74->ordinal;\n  exp.hint = exp.ordinal;\n  if (exp.ordinal < 0) {\n    exp.hint = 0;\n  }\n  exp.flag_noname = exp.name == (char *)0x0;\n  exp.flag_private = '\0';\n  exp.flag_constant = '\0';\n  exp.flag_data = (char)local_74->data;\n  pbVar15 = make_one(&exp,output_bfd,exp.flag_data == '\0' & uVar22);\n  add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n  bVar7 = true;\nLAB_00065b37:\n  local_70 = local_70 + 1;\n  if (pe_def_file->num_imports <= local_70) goto LAB_00065b67;\n  local_74 = local_74 + 1;\n  pdVar6 = *local_64;\n  local_64 = local_64 + 6;\n  if (pdVar6 != local_68) goto LAB_00065b67;\n  goto LAB_000658a0;\nLAB_00065b67:\n  __ptr = (byte *)dll_symname;\n  if (bVar7) {\n    pbVar15 = make_tail(output_bfd);\n    add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n    __ptr = (byte *)dll_symname;\n  }\nLAB_00065b8f:\n  free(__ptr);\n  local_68 = local_68->next;\n  pkVar8 = udef_table;\n  iVar20 = undef_count;\n  if (local_68 == (def_file_module *)0x0) goto joined_r0x00065bbb;\n  goto LAB_000657a0;\n}" primitive_type (function_declarator "pe_process_import_defs(bfd *output_bfd,bfd_link_info *linfo)" identifier (parameter_list "(bfd *output_bfd,bfd_link_info *linfo)" ( (parameter_declaration "bfd *output_bfd" type_identifier (pointer_declarator "*output_bfd" * identifier)) , (parameter_declaration "bfd_link_info *linfo" type_identifier (pointer_declarator "*linfo" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  key_value *pkVar2;\n  byte bVar3;\n  char cVar4;\n  def_file_import *pdVar5;\n  def_file_module *pdVar6;\n  bool bVar7;\n  key_value *pkVar8;\n  undefined *puVar9;\n  def_file_module **ppdVar10;\n  byte *__ptr;\n  size_t sVar11;\n  char *__dest;\n  char *pcVar12;\n  char *pcVar13;\n  char *pcVar14;\n  bfd *pbVar15;\n  byte *pbVar16;\n  key_value *pkVar17;\n  uint uVar18;\n  uint uVar19;\n  int iVar20;\n  uint uVar21;\n  uint uVar22;\n  bool bVar23;\n  key_value *local_78;\n  def_file_import *local_74;\n  int local_70;\n  def_file_module *local_68;\n  def_file_module **local_64;\n  def_file_export exp;\n  \n  pe_dll_id_target(output_bfd->xvec->name);\n  if (pe_def_file != (def_file *)0x0) {\n    pdVar5 = pe_def_file->imports;\n    pcVar1 = "";\n    undef_count = 0;\n    bfd_link_hash_traverse(link_info.hash,pe_undef_count,"");\n    udef_table = (key_value *)xmalloc(undef_count << 3);\n    undef_count = 0;\n    bfd_link_hash_traverse(link_info.hash,pe_undef_fill,"");\n    qsort(udef_table,undef_count,8,undef_sort_cmp);\n    puVar9 = PTR__sch_istable_001cefa0;\n    for (local_68 = pe_def_file->modules; pkVar8 = udef_table, iVar20 = undef_count,\n        local_68 != (def_file_module *)0x0; local_68 = local_68->next) {\nLAB_000657a0:\n      if (0 < pe_def_file->num_imports) {\n        local_70 = 0;\n        if (local_68 != pdVar5->module) {\n          local_70 = 0;\n          ppdVar10 = &pdVar5[1].module;\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == pe_def_file->num_imports) goto LAB_000657df;\n            pdVar6 = *ppdVar10;\n            ppdVar10 = ppdVar10 + 6;\n          } while (pdVar6 != local_68);\n        }\n        dll_filename = local_68->name;\n        __ptr = (byte *)xstrdup(dll_filename);\n        bVar3 = *__ptr;\n        pbVar16 = __ptr;\n        dll_symname = (char *)__ptr;\n        while (bVar3 != 0) {\n          if ((puVar9[(uint)bVar3 * 2] & 0x8c) == 0) {\n            *pbVar16 = 0x5f;\n          }\n          pbVar16 = pbVar16 + 1;\n          bVar3 = *pbVar16;\n        }\n        if ((local_70 < pe_def_file->num_imports) &&\n           (local_74 = pdVar5 + local_70, local_68 == local_74->module)) {\n          local_64 = &pdVar5[local_70 + 1].module;\n          bVar7 = false;\nLAB_000658a0:\n          cVar4 = *local_74->internal_name;\n          sVar11 = strlen(local_74->internal_name);\n          __dest = (char *)xmalloc(sVar11 + 8);\n          if (cVar4 != '@') {\n            pcVar13 = local_74->internal_name;\n            pcVar12 = strchr(pcVar13,0x40);\n            pcVar14 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar14 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar14,pcVar13);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\n              if (pcVar12 != (char *)0x0) goto LAB_00065e00;\n              uVar22 = 1;\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s%s","__imp_",pcVar13,local_74->internal_name);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if (iVar20 == 0) {\n              bVar23 = false;\n              if (pcVar12 != (char *)0x0) goto LAB_00065dc0;\n            }\n            else {\n              bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\n              if ((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))\n              goto LAB_00065d23;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar13,local_74->internal_name);\n            sVar11 = strlen(__dest);\n            pcVar13 = (char *)xmalloc(sVar11 + 3);\n            strcpy(pcVar13,__dest);\n            pcVar14 = strchr(pcVar13 + (*pcVar13 == '@'),0x40);\n            if (pcVar14 != (char *)0x0) {\n              pcVar14[1] = '\0';\n            }\n            pkVar8 = udef_table;\n            uVar22 = 0;\n            uVar18 = undef_count;\n            while (uVar22 < uVar18) {\n              while( true ) {\n                uVar19 = uVar22 + uVar18 >> 1;\n                iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);\n                if (-1 < iVar20) break;\n                uVar18 = uVar19;\n                if (uVar19 <= uVar22) goto LAB_00065a75;\n              }\n              if (iVar20 == 0) {\n                iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);\n                if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                break;\n              }\n              uVar22 = uVar19 + 1;\n            }\nLAB_00065a75:\n            uVar22 = undef_count;\n            pkVar8 = udef_table;\n            cVar4 = *pcVar13;\n            if (cVar4 != '?') {\n              local_78 = udef_table;\n              if (pcVar14 == (char *)0x0) {\n                if (cVar4 == '@') goto LAB_00065f40;\n                sVar11 = strlen(pcVar13);\n                (pcVar13 + sVar11)[0] = '@';\n                (pcVar13 + sVar11)[1] = '\0';\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }\nLAB_00065e95:\n                cVar4 = *pcVar13;\njoined_r0x00066040:\n                if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }\n                pkVar8 = udef_table;\n                uVar22 = 0;\n                uVar18 = undef_count;\n                while (uVar22 < uVar18) {\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }\n              }\n              else {\n                if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }\n              }\n            }\n            goto LAB_00065b08;\n          }\n          strcpy(__dest,local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\nLAB_00065e00:\n            uVar22 = 1;\n            free(__dest);\n            goto LAB_00065c0f;\n          }\n          sprintf(__dest,"%s%s","__imp_",local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if (iVar20 != 0) {\n            bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\nLAB_00065d23:\n            uVar22 = 0;\n            goto LAB_00065b1c;\n          }\nLAB_00065dc0:\n          free(__dest);\n          goto LAB_00065b37;\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (pkVar17 = udef_table, iVar20 != 0) {\n      iVar20 = iVar20 + -1;\n      pkVar2 = udef_table + iVar20;\n      udef_table = pkVar8;\n      undef_count = iVar20;\n      free(pkVar2->key);\n      pkVar8 = udef_table;\n      udef_table = pkVar17;\n    }\n    udef_table = pkVar8;\n    free(pkVar17);\n  }\n  return;\nLAB_00065d30:\n  iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n  if (*(char *)(iVar20 + 0xc) == '\x01') {\nLAB_00065d58:\n    uVar22 = 1;\n    free(pcVar13);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    uVar22 = 1;\n    free(pcVar13);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar23) goto LAB_00065b37;\n  }\nLAB_00065c0f:\n  if (!bVar7) {\n    pbVar15 = make_head(output_bfd);\n    add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n  }\n  exp.internal_name = local_74->internal_name;\n  exp.name = local_74->name;\n  exp.its_name = local_74->its_name;\n  exp.ordinal = local_74->ordinal;\n  exp.hint = exp.ordinal;\n  if (exp.ordinal < 0) {\n    exp.hint = 0;\n  }\n  exp.flag_noname = exp.name == (char *)0x0;\n  exp.flag_private = '\0';\n  exp.flag_constant = '\0';\n  exp.flag_data = (char)local_74->data;\n  pbVar15 = make_one(&exp,output_bfd,exp.flag_data == '\0' & uVar22);\n  add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n  bVar7 = true;\nLAB_00065b37:\n  local_70 = local_70 + 1;\n  if (pe_def_file->num_imports <= local_70) goto LAB_00065b67;\n  local_74 = local_74 + 1;\n  pdVar6 = *local_64;\n  local_64 = local_64 + 6;\n  if (pdVar6 != local_68) goto LAB_00065b67;\n  goto LAB_000658a0;\nLAB_00065b67:\n  __ptr = (byte *)dll_symname;\n  if (bVar7) {\n    pbVar15 = make_tail(output_bfd);\n    add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n    __ptr = (byte *)dll_symname;\n  }\nLAB_00065b8f:\n  free(__ptr);\n  local_68 = local_68->next;\n  pkVar8 = udef_table;\n  iVar20 = undef_count;\n  if (local_68 == (def_file_module *)0x0) goto joined_r0x00065bbb;\n  goto LAB_000657a0;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "key_value *pkVar2;" type_identifier (pointer_declarator "*pkVar2" * identifier) ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "def_file_import *pdVar5;" type_identifier (pointer_declarator "*pdVar5" * identifier) ;) (declaration "def_file_module *pdVar6;" type_identifier (pointer_declarator "*pdVar6" * identifier) ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "key_value *pkVar8;" type_identifier (pointer_declarator "*pkVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "def_file_module **ppdVar10;" type_identifier (pointer_declarator "**ppdVar10" * (pointer_declarator "*ppdVar10" * identifier)) ;) (declaration "byte *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "char *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "bfd *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "key_value *pkVar17;" type_identifier (pointer_declarator "*pkVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "key_value *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "def_file_import *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "def_file_module *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "def_file_module **local_64;" type_identifier (pointer_declarator "**local_64" * (pointer_declarator "*local_64" * identifier)) ;) (declaration "def_file_export exp;" type_identifier identifier ;) (expression_statement "pe_dll_id_target(output_bfd->xvec->name);" (call_expression "pe_dll_id_target(output_bfd->xvec->name)" identifier (argument_list "(output_bfd->xvec->name)" ( (field_expression "output_bfd->xvec->name" (field_expression "output_bfd->xvec" identifier -> field_identifier) -> field_identifier) ))) ;) (if_statement "if (pe_def_file != (def_file *)0x0) {\n    pdVar5 = pe_def_file->imports;\n    pcVar1 = "";\n    undef_count = 0;\n    bfd_link_hash_traverse(link_info.hash,pe_undef_count,"");\n    udef_table = (key_value *)xmalloc(undef_count << 3);\n    undef_count = 0;\n    bfd_link_hash_traverse(link_info.hash,pe_undef_fill,"");\n    qsort(udef_table,undef_count,8,undef_sort_cmp);\n    puVar9 = PTR__sch_istable_001cefa0;\n    for (local_68 = pe_def_file->modules; pkVar8 = udef_table, iVar20 = undef_count,\n        local_68 != (def_file_module *)0x0; local_68 = local_68->next) {\nLAB_000657a0:\n      if (0 < pe_def_file->num_imports) {\n        local_70 = 0;\n        if (local_68 != pdVar5->module) {\n          local_70 = 0;\n          ppdVar10 = &pdVar5[1].module;\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == pe_def_file->num_imports) goto LAB_000657df;\n            pdVar6 = *ppdVar10;\n            ppdVar10 = ppdVar10 + 6;\n          } while (pdVar6 != local_68);\n        }\n        dll_filename = local_68->name;\n        __ptr = (byte *)xstrdup(dll_filename);\n        bVar3 = *__ptr;\n        pbVar16 = __ptr;\n        dll_symname = (char *)__ptr;\n        while (bVar3 != 0) {\n          if ((puVar9[(uint)bVar3 * 2] & 0x8c) == 0) {\n            *pbVar16 = 0x5f;\n          }\n          pbVar16 = pbVar16 + 1;\n          bVar3 = *pbVar16;\n        }\n        if ((local_70 < pe_def_file->num_imports) &&\n           (local_74 = pdVar5 + local_70, local_68 == local_74->module)) {\n          local_64 = &pdVar5[local_70 + 1].module;\n          bVar7 = false;\nLAB_000658a0:\n          cVar4 = *local_74->internal_name;\n          sVar11 = strlen(local_74->internal_name);\n          __dest = (char *)xmalloc(sVar11 + 8);\n          if (cVar4 != '@') {\n            pcVar13 = local_74->internal_name;\n            pcVar12 = strchr(pcVar13,0x40);\n            pcVar14 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar14 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar14,pcVar13);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\n              if (pcVar12 != (char *)0x0) goto LAB_00065e00;\n              uVar22 = 1;\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s%s","__imp_",pcVar13,local_74->internal_name);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if (iVar20 == 0) {\n              bVar23 = false;\n              if (pcVar12 != (char *)0x0) goto LAB_00065dc0;\n            }\n            else {\n              bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\n              if ((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))\n              goto LAB_00065d23;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar13,local_74->internal_name);\n            sVar11 = strlen(__dest);\n            pcVar13 = (char *)xmalloc(sVar11 + 3);\n            strcpy(pcVar13,__dest);\n            pcVar14 = strchr(pcVar13 + (*pcVar13 == '@'),0x40);\n            if (pcVar14 != (char *)0x0) {\n              pcVar14[1] = '\0';\n            }\n            pkVar8 = udef_table;\n            uVar22 = 0;\n            uVar18 = undef_count;\n            while (uVar22 < uVar18) {\n              while( true ) {\n                uVar19 = uVar22 + uVar18 >> 1;\n                iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);\n                if (-1 < iVar20) break;\n                uVar18 = uVar19;\n                if (uVar19 <= uVar22) goto LAB_00065a75;\n              }\n              if (iVar20 == 0) {\n                iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);\n                if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                break;\n              }\n              uVar22 = uVar19 + 1;\n            }\nLAB_00065a75:\n            uVar22 = undef_count;\n            pkVar8 = udef_table;\n            cVar4 = *pcVar13;\n            if (cVar4 != '?') {\n              local_78 = udef_table;\n              if (pcVar14 == (char *)0x0) {\n                if (cVar4 == '@') goto LAB_00065f40;\n                sVar11 = strlen(pcVar13);\n                (pcVar13 + sVar11)[0] = '@';\n                (pcVar13 + sVar11)[1] = '\0';\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }\nLAB_00065e95:\n                cVar4 = *pcVar13;\njoined_r0x00066040:\n                if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }\n                pkVar8 = udef_table;\n                uVar22 = 0;\n                uVar18 = undef_count;\n                while (uVar22 < uVar18) {\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }\n              }\n              else {\n                if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }\n              }\n            }\n            goto LAB_00065b08;\n          }\n          strcpy(__dest,local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\nLAB_00065e00:\n            uVar22 = 1;\n            free(__dest);\n            goto LAB_00065c0f;\n          }\n          sprintf(__dest,"%s%s","__imp_",local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if (iVar20 != 0) {\n            bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\nLAB_00065d23:\n            uVar22 = 0;\n            goto LAB_00065b1c;\n          }\nLAB_00065dc0:\n          free(__dest);\n          goto LAB_00065b37;\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (pkVar17 = udef_table, iVar20 != 0) {\n      iVar20 = iVar20 + -1;\n      pkVar2 = udef_table + iVar20;\n      udef_table = pkVar8;\n      undef_count = iVar20;\n      free(pkVar2->key);\n      pkVar8 = udef_table;\n      udef_table = pkVar17;\n    }\n    udef_table = pkVar8;\n    free(pkVar17);\n  }\n  return;\nLAB_00065d30:\n  iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n  if (*(char *)(iVar20 + 0xc) == '\x01') {\nLAB_00065d58:\n    uVar22 = 1;\n    free(pcVar13);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    uVar22 = 1;\n    free(pcVar13);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar23) goto LAB_00065b37;\n  }\nLAB_00065c0f:\n  if (!bVar7) {\n    pbVar15 = make_head(output_bfd);\n    add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n  }\n  exp.internal_name = local_74->internal_name;\n  exp.name = local_74->name;\n  exp.its_name = local_74->its_name;\n  exp.ordinal = local_74->ordinal;\n  exp.hint = exp.ordinal;\n  if (exp.ordinal < 0) {\n    exp.hint = 0;\n  }\n  exp.flag_noname = exp.name == (char *)0x0;\n  exp.flag_private = '\0';\n  exp.flag_constant = '\0';\n  exp.flag_data = (char)local_74->data;\n  pbVar15 = make_one(&exp,output_bfd,exp.flag_data == '\0' & uVar22);\n  add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n  bVar7 = true;\nLAB_00065b37:\n  local_70 = local_70 + 1;\n  if (pe_def_file->num_imports <= local_70) goto LAB_00065b67;\n  local_74 = local_74 + 1;\n  pdVar6 = *local_64;\n  local_64 = local_64 + 6;\n  if (pdVar6 != local_68) goto LAB_00065b67;\n  goto LAB_000658a0;\nLAB_00065b67:\n  __ptr = (byte *)dll_symname;\n  if (bVar7) {\n    pbVar15 = make_tail(output_bfd);\n    add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n    __ptr = (byte *)dll_symname;\n  }\nLAB_00065b8f:\n  free(__ptr);\n  local_68 = local_68->next;\n  pkVar8 = udef_table;\n  iVar20 = undef_count;\n  if (local_68 == (def_file_module *)0x0) goto joined_r0x00065bbb;\n  goto LAB_000657a0;\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    pdVar5 = pe_def_file->imports;\n    pcVar1 = "";\n    undef_count = 0;\n    bfd_link_hash_traverse(link_info.hash,pe_undef_count,"");\n    udef_table = (key_value *)xmalloc(undef_count << 3);\n    undef_count = 0;\n    bfd_link_hash_traverse(link_info.hash,pe_undef_fill,"");\n    qsort(udef_table,undef_count,8,undef_sort_cmp);\n    puVar9 = PTR__sch_istable_001cefa0;\n    for (local_68 = pe_def_file->modules; pkVar8 = udef_table, iVar20 = undef_count,\n        local_68 != (def_file_module *)0x0; local_68 = local_68->next) {\nLAB_000657a0:\n      if (0 < pe_def_file->num_imports) {\n        local_70 = 0;\n        if (local_68 != pdVar5->module) {\n          local_70 = 0;\n          ppdVar10 = &pdVar5[1].module;\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == pe_def_file->num_imports) goto LAB_000657df;\n            pdVar6 = *ppdVar10;\n            ppdVar10 = ppdVar10 + 6;\n          } while (pdVar6 != local_68);\n        }\n        dll_filename = local_68->name;\n        __ptr = (byte *)xstrdup(dll_filename);\n        bVar3 = *__ptr;\n        pbVar16 = __ptr;\n        dll_symname = (char *)__ptr;\n        while (bVar3 != 0) {\n          if ((puVar9[(uint)bVar3 * 2] & 0x8c) == 0) {\n            *pbVar16 = 0x5f;\n          }\n          pbVar16 = pbVar16 + 1;\n          bVar3 = *pbVar16;\n        }\n        if ((local_70 < pe_def_file->num_imports) &&\n           (local_74 = pdVar5 + local_70, local_68 == local_74->module)) {\n          local_64 = &pdVar5[local_70 + 1].module;\n          bVar7 = false;\nLAB_000658a0:\n          cVar4 = *local_74->internal_name;\n          sVar11 = strlen(local_74->internal_name);\n          __dest = (char *)xmalloc(sVar11 + 8);\n          if (cVar4 != '@') {\n            pcVar13 = local_74->internal_name;\n            pcVar12 = strchr(pcVar13,0x40);\n            pcVar14 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar14 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar14,pcVar13);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\n              if (pcVar12 != (char *)0x0) goto LAB_00065e00;\n              uVar22 = 1;\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s%s","__imp_",pcVar13,local_74->internal_name);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if (iVar20 == 0) {\n              bVar23 = false;\n              if (pcVar12 != (char *)0x0) goto LAB_00065dc0;\n            }\n            else {\n              bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\n              if ((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))\n              goto LAB_00065d23;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar13,local_74->internal_name);\n            sVar11 = strlen(__dest);\n            pcVar13 = (char *)xmalloc(sVar11 + 3);\n            strcpy(pcVar13,__dest);\n            pcVar14 = strchr(pcVar13 + (*pcVar13 == '@'),0x40);\n            if (pcVar14 != (char *)0x0) {\n              pcVar14[1] = '\0';\n            }\n            pkVar8 = udef_table;\n            uVar22 = 0;\n            uVar18 = undef_count;\n            while (uVar22 < uVar18) {\n              while( true ) {\n                uVar19 = uVar22 + uVar18 >> 1;\n                iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);\n                if (-1 < iVar20) break;\n                uVar18 = uVar19;\n                if (uVar19 <= uVar22) goto LAB_00065a75;\n              }\n              if (iVar20 == 0) {\n                iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);\n                if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                break;\n              }\n              uVar22 = uVar19 + 1;\n            }\nLAB_00065a75:\n            uVar22 = undef_count;\n            pkVar8 = udef_table;\n            cVar4 = *pcVar13;\n            if (cVar4 != '?') {\n              local_78 = udef_table;\n              if (pcVar14 == (char *)0x0) {\n                if (cVar4 == '@') goto LAB_00065f40;\n                sVar11 = strlen(pcVar13);\n                (pcVar13 + sVar11)[0] = '@';\n                (pcVar13 + sVar11)[1] = '\0';\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }\nLAB_00065e95:\n                cVar4 = *pcVar13;\njoined_r0x00066040:\n                if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }\n                pkVar8 = udef_table;\n                uVar22 = 0;\n                uVar18 = undef_count;\n                while (uVar22 < uVar18) {\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }\n              }\n              else {\n                if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }\n              }\n            }\n            goto LAB_00065b08;\n          }\n          strcpy(__dest,local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\nLAB_00065e00:\n            uVar22 = 1;\n            free(__dest);\n            goto LAB_00065c0f;\n          }\n          sprintf(__dest,"%s%s","__imp_",local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if (iVar20 != 0) {\n            bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\nLAB_00065d23:\n            uVar22 = 0;\n            goto LAB_00065b1c;\n          }\nLAB_00065dc0:\n          free(__dest);\n          goto LAB_00065b37;\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (pkVar17 = udef_table, iVar20 != 0) {\n      iVar20 = iVar20 + -1;\n      pkVar2 = udef_table + iVar20;\n      udef_table = pkVar8;\n      undef_count = iVar20;\n      free(pkVar2->key);\n      pkVar8 = udef_table;\n      udef_table = pkVar17;\n    }\n    udef_table = pkVar8;\n    free(pkVar17);\n  }\n  return;\nLAB_00065d30:\n  iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n  if (*(char *)(iVar20 + 0xc) == '\x01') {\nLAB_00065d58:\n    uVar22 = 1;\n    free(pcVar13);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    uVar22 = 1;\n    free(pcVar13);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar23) goto LAB_00065b37;\n  }\nLAB_00065c0f:\n  if (!bVar7) {\n    pbVar15 = make_head(output_bfd);\n    add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n  }\n  exp.internal_name = local_74->internal_name;\n  exp.name = local_74->name;\n  exp.its_name = local_74->its_name;\n  exp.ordinal = local_74->ordinal;\n  exp.hint = exp.ordinal;\n  if (exp.ordinal < 0) {\n    exp.hint = 0;\n  }\n  exp.flag_noname = exp.name == (char *)0x0;\n  exp.flag_private = '\0';\n  exp.flag_constant = '\0';\n  exp.flag_data = (char)local_74->data;\n  pbVar15 = make_one(&exp,output_bfd,exp.flag_data == '\0' & uVar22);\n  add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n  bVar7 = true;\nLAB_00065b37:\n  local_70 = local_70 + 1;\n  if (pe_def_file->num_imports <= local_70) goto LAB_00065b67;\n  local_74 = local_74 + 1;\n  pdVar6 = *local_64;\n  local_64 = local_64 + 6;\n  if (pdVar6 != local_68) goto LAB_00065b67;\n  goto LAB_000658a0;\nLAB_00065b67:\n  __ptr = (byte *)dll_symname;\n  if (bVar7) {\n    pbVar15 = make_tail(output_bfd);\n    add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n    __ptr = (byte *)dll_symname;\n  }\nLAB_00065b8f:\n  free(__ptr);\n  local_68 = local_68->next;\n  pkVar8 = udef_table;\n  iVar20 = undef_count;\n  if (local_68 == (def_file_module *)0x0) goto joined_r0x00065bbb;\n  goto LAB_000657a0;\n}" { (expression_statement "pdVar5 = pe_def_file->imports;" (assignment_expression "pdVar5 = pe_def_file->imports" identifier = (field_expression "pe_def_file->imports" identifier -> field_identifier)) ;) (expression_statement "pcVar1 = "";" (assignment_expression "pcVar1 = """ identifier = (string_literal """" " ")) ;) (expression_statement "undef_count = 0;" (assignment_expression "undef_count = 0" identifier = number_literal) ;) (expression_statement "bfd_link_hash_traverse(link_info.hash,pe_undef_count,"");" (call_expression "bfd_link_hash_traverse(link_info.hash,pe_undef_count,"")" identifier (argument_list "(link_info.hash,pe_undef_count,"")" ( (field_expression "link_info.hash" identifier . field_identifier) , identifier , (string_literal """" " ") ))) ;) (expression_statement "udef_table = (key_value *)xmalloc(undef_count << 3);" (assignment_expression "udef_table = (key_value *)xmalloc(undef_count << 3)" identifier = (cast_expression "(key_value *)xmalloc(undef_count << 3)" ( (type_descriptor "key_value *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(undef_count << 3)" identifier (argument_list "(undef_count << 3)" ( (binary_expression "undef_count << 3" identifier << number_literal) ))))) ;) (expression_statement "undef_count = 0;" (assignment_expression "undef_count = 0" identifier = number_literal) ;) (expression_statement "bfd_link_hash_traverse(link_info.hash,pe_undef_fill,"");" (call_expression "bfd_link_hash_traverse(link_info.hash,pe_undef_fill,"")" identifier (argument_list "(link_info.hash,pe_undef_fill,"")" ( (field_expression "link_info.hash" identifier . field_identifier) , identifier , (string_literal """" " ") ))) ;) (expression_statement "qsort(udef_table,undef_count,8,undef_sort_cmp);" (call_expression "qsort(udef_table,undef_count,8,undef_sort_cmp)" identifier (argument_list "(udef_table,undef_count,8,undef_sort_cmp)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "puVar9 = PTR__sch_istable_001cefa0;" (assignment_expression "puVar9 = PTR__sch_istable_001cefa0" identifier = identifier) ;) (for_statement "for (local_68 = pe_def_file->modules; pkVar8 = udef_table, iVar20 = undef_count,\n        local_68 != (def_file_module *)0x0; local_68 = local_68->next) {\nLAB_000657a0:\n      if (0 < pe_def_file->num_imports) {\n        local_70 = 0;\n        if (local_68 != pdVar5->module) {\n          local_70 = 0;\n          ppdVar10 = &pdVar5[1].module;\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == pe_def_file->num_imports) goto LAB_000657df;\n            pdVar6 = *ppdVar10;\n            ppdVar10 = ppdVar10 + 6;\n          } while (pdVar6 != local_68);\n        }\n        dll_filename = local_68->name;\n        __ptr = (byte *)xstrdup(dll_filename);\n        bVar3 = *__ptr;\n        pbVar16 = __ptr;\n        dll_symname = (char *)__ptr;\n        while (bVar3 != 0) {\n          if ((puVar9[(uint)bVar3 * 2] & 0x8c) == 0) {\n            *pbVar16 = 0x5f;\n          }\n          pbVar16 = pbVar16 + 1;\n          bVar3 = *pbVar16;\n        }\n        if ((local_70 < pe_def_file->num_imports) &&\n           (local_74 = pdVar5 + local_70, local_68 == local_74->module)) {\n          local_64 = &pdVar5[local_70 + 1].module;\n          bVar7 = false;\nLAB_000658a0:\n          cVar4 = *local_74->internal_name;\n          sVar11 = strlen(local_74->internal_name);\n          __dest = (char *)xmalloc(sVar11 + 8);\n          if (cVar4 != '@') {\n            pcVar13 = local_74->internal_name;\n            pcVar12 = strchr(pcVar13,0x40);\n            pcVar14 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar14 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar14,pcVar13);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\n              if (pcVar12 != (char *)0x0) goto LAB_00065e00;\n              uVar22 = 1;\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s%s","__imp_",pcVar13,local_74->internal_name);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if (iVar20 == 0) {\n              bVar23 = false;\n              if (pcVar12 != (char *)0x0) goto LAB_00065dc0;\n            }\n            else {\n              bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\n              if ((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))\n              goto LAB_00065d23;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar13,local_74->internal_name);\n            sVar11 = strlen(__dest);\n            pcVar13 = (char *)xmalloc(sVar11 + 3);\n            strcpy(pcVar13,__dest);\n            pcVar14 = strchr(pcVar13 + (*pcVar13 == '@'),0x40);\n            if (pcVar14 != (char *)0x0) {\n              pcVar14[1] = '\0';\n            }\n            pkVar8 = udef_table;\n            uVar22 = 0;\n            uVar18 = undef_count;\n            while (uVar22 < uVar18) {\n              while( true ) {\n                uVar19 = uVar22 + uVar18 >> 1;\n                iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);\n                if (-1 < iVar20) break;\n                uVar18 = uVar19;\n                if (uVar19 <= uVar22) goto LAB_00065a75;\n              }\n              if (iVar20 == 0) {\n                iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);\n                if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                break;\n              }\n              uVar22 = uVar19 + 1;\n            }\nLAB_00065a75:\n            uVar22 = undef_count;\n            pkVar8 = udef_table;\n            cVar4 = *pcVar13;\n            if (cVar4 != '?') {\n              local_78 = udef_table;\n              if (pcVar14 == (char *)0x0) {\n                if (cVar4 == '@') goto LAB_00065f40;\n                sVar11 = strlen(pcVar13);\n                (pcVar13 + sVar11)[0] = '@';\n                (pcVar13 + sVar11)[1] = '\0';\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }\nLAB_00065e95:\n                cVar4 = *pcVar13;\njoined_r0x00066040:\n                if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }\n                pkVar8 = udef_table;\n                uVar22 = 0;\n                uVar18 = undef_count;\n                while (uVar22 < uVar18) {\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }\n              }\n              else {\n                if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }\n              }\n            }\n            goto LAB_00065b08;\n          }\n          strcpy(__dest,local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\nLAB_00065e00:\n            uVar22 = 1;\n            free(__dest);\n            goto LAB_00065c0f;\n          }\n          sprintf(__dest,"%s%s","__imp_",local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if (iVar20 != 0) {\n            bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\nLAB_00065d23:\n            uVar22 = 0;\n            goto LAB_00065b1c;\n          }\nLAB_00065dc0:\n          free(__dest);\n          goto LAB_00065b37;\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (pkVar17 = udef_table, iVar20 != 0) {\n      iVar20 = iVar20 + -1;\n      pkVar2 = udef_table + iVar20;\n      udef_table = pkVar8;\n      undef_count = iVar20;\n      free(pkVar2->key);\n      pkVar8 = udef_table;\n      udef_table = pkVar17;\n    }\n    udef_table = pkVar8;\n    free(pkVar17);\n  }" for ( (assignment_expression "local_68 = pe_def_file->modules" identifier = (field_expression "pe_def_file->modules" identifier -> field_identifier)) ; (comma_expression "pkVar8 = udef_table, iVar20 = undef_count,\n        local_68 != (def_file_module *)0x0" (assignment_expression "pkVar8 = udef_table" identifier = identifier) , (comma_expression "iVar20 = undef_count,\n        local_68 != (def_file_module *)0x0" (assignment_expression "iVar20 = undef_count" identifier = identifier) , (binary_expression "local_68 != (def_file_module *)0x0" identifier != (cast_expression "(def_file_module *)0x0" ( (type_descriptor "def_file_module *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ; (assignment_expression "local_68 = local_68->next" identifier = (field_expression "local_68->next" identifier -> field_identifier)) ) (compound_statement "{\nLAB_000657a0:\n      if (0 < pe_def_file->num_imports) {\n        local_70 = 0;\n        if (local_68 != pdVar5->module) {\n          local_70 = 0;\n          ppdVar10 = &pdVar5[1].module;\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == pe_def_file->num_imports) goto LAB_000657df;\n            pdVar6 = *ppdVar10;\n            ppdVar10 = ppdVar10 + 6;\n          } while (pdVar6 != local_68);\n        }\n        dll_filename = local_68->name;\n        __ptr = (byte *)xstrdup(dll_filename);\n        bVar3 = *__ptr;\n        pbVar16 = __ptr;\n        dll_symname = (char *)__ptr;\n        while (bVar3 != 0) {\n          if ((puVar9[(uint)bVar3 * 2] & 0x8c) == 0) {\n            *pbVar16 = 0x5f;\n          }\n          pbVar16 = pbVar16 + 1;\n          bVar3 = *pbVar16;\n        }\n        if ((local_70 < pe_def_file->num_imports) &&\n           (local_74 = pdVar5 + local_70, local_68 == local_74->module)) {\n          local_64 = &pdVar5[local_70 + 1].module;\n          bVar7 = false;\nLAB_000658a0:\n          cVar4 = *local_74->internal_name;\n          sVar11 = strlen(local_74->internal_name);\n          __dest = (char *)xmalloc(sVar11 + 8);\n          if (cVar4 != '@') {\n            pcVar13 = local_74->internal_name;\n            pcVar12 = strchr(pcVar13,0x40);\n            pcVar14 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar14 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar14,pcVar13);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\n              if (pcVar12 != (char *)0x0) goto LAB_00065e00;\n              uVar22 = 1;\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s%s","__imp_",pcVar13,local_74->internal_name);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if (iVar20 == 0) {\n              bVar23 = false;\n              if (pcVar12 != (char *)0x0) goto LAB_00065dc0;\n            }\n            else {\n              bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\n              if ((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))\n              goto LAB_00065d23;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar13,local_74->internal_name);\n            sVar11 = strlen(__dest);\n            pcVar13 = (char *)xmalloc(sVar11 + 3);\n            strcpy(pcVar13,__dest);\n            pcVar14 = strchr(pcVar13 + (*pcVar13 == '@'),0x40);\n            if (pcVar14 != (char *)0x0) {\n              pcVar14[1] = '\0';\n            }\n            pkVar8 = udef_table;\n            uVar22 = 0;\n            uVar18 = undef_count;\n            while (uVar22 < uVar18) {\n              while( true ) {\n                uVar19 = uVar22 + uVar18 >> 1;\n                iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);\n                if (-1 < iVar20) break;\n                uVar18 = uVar19;\n                if (uVar19 <= uVar22) goto LAB_00065a75;\n              }\n              if (iVar20 == 0) {\n                iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);\n                if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                break;\n              }\n              uVar22 = uVar19 + 1;\n            }\nLAB_00065a75:\n            uVar22 = undef_count;\n            pkVar8 = udef_table;\n            cVar4 = *pcVar13;\n            if (cVar4 != '?') {\n              local_78 = udef_table;\n              if (pcVar14 == (char *)0x0) {\n                if (cVar4 == '@') goto LAB_00065f40;\n                sVar11 = strlen(pcVar13);\n                (pcVar13 + sVar11)[0] = '@';\n                (pcVar13 + sVar11)[1] = '\0';\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }\nLAB_00065e95:\n                cVar4 = *pcVar13;\njoined_r0x00066040:\n                if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }\n                pkVar8 = udef_table;\n                uVar22 = 0;\n                uVar18 = undef_count;\n                while (uVar22 < uVar18) {\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }\n              }\n              else {\n                if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }\n              }\n            }\n            goto LAB_00065b08;\n          }\n          strcpy(__dest,local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\nLAB_00065e00:\n            uVar22 = 1;\n            free(__dest);\n            goto LAB_00065c0f;\n          }\n          sprintf(__dest,"%s%s","__imp_",local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if (iVar20 != 0) {\n            bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\nLAB_00065d23:\n            uVar22 = 0;\n            goto LAB_00065b1c;\n          }\nLAB_00065dc0:\n          free(__dest);\n          goto LAB_00065b37;\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (pkVar17 = udef_table, iVar20 != 0) {\n      iVar20 = iVar20 + -1;\n      pkVar2 = udef_table + iVar20;\n      udef_table = pkVar8;\n      undef_count = iVar20;\n      free(pkVar2->key);\n      pkVar8 = udef_table;\n      udef_table = pkVar17;\n    }\n    udef_table = pkVar8;\n    free(pkVar17);\n  }" { (labeled_statement "LAB_000657a0:\n      if (0 < pe_def_file->num_imports) {\n        local_70 = 0;\n        if (local_68 != pdVar5->module) {\n          local_70 = 0;\n          ppdVar10 = &pdVar5[1].module;\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == pe_def_file->num_imports) goto LAB_000657df;\n            pdVar6 = *ppdVar10;\n            ppdVar10 = ppdVar10 + 6;\n          } while (pdVar6 != local_68);\n        }\n        dll_filename = local_68->name;\n        __ptr = (byte *)xstrdup(dll_filename);\n        bVar3 = *__ptr;\n        pbVar16 = __ptr;\n        dll_symname = (char *)__ptr;\n        while (bVar3 != 0) {\n          if ((puVar9[(uint)bVar3 * 2] & 0x8c) == 0) {\n            *pbVar16 = 0x5f;\n          }\n          pbVar16 = pbVar16 + 1;\n          bVar3 = *pbVar16;\n        }\n        if ((local_70 < pe_def_file->num_imports) &&\n           (local_74 = pdVar5 + local_70, local_68 == local_74->module)) {\n          local_64 = &pdVar5[local_70 + 1].module;\n          bVar7 = false;\nLAB_000658a0:\n          cVar4 = *local_74->internal_name;\n          sVar11 = strlen(local_74->internal_name);\n          __dest = (char *)xmalloc(sVar11 + 8);\n          if (cVar4 != '@') {\n            pcVar13 = local_74->internal_name;\n            pcVar12 = strchr(pcVar13,0x40);\n            pcVar14 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar14 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar14,pcVar13);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\n              if (pcVar12 != (char *)0x0) goto LAB_00065e00;\n              uVar22 = 1;\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s%s","__imp_",pcVar13,local_74->internal_name);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if (iVar20 == 0) {\n              bVar23 = false;\n              if (pcVar12 != (char *)0x0) goto LAB_00065dc0;\n            }\n            else {\n              bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\n              if ((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))\n              goto LAB_00065d23;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar13,local_74->internal_name);\n            sVar11 = strlen(__dest);\n            pcVar13 = (char *)xmalloc(sVar11 + 3);\n            strcpy(pcVar13,__dest);\n            pcVar14 = strchr(pcVar13 + (*pcVar13 == '@'),0x40);\n            if (pcVar14 != (char *)0x0) {\n              pcVar14[1] = '\0';\n            }\n            pkVar8 = udef_table;\n            uVar22 = 0;\n            uVar18 = undef_count;\n            while (uVar22 < uVar18) {\n              while( true ) {\n                uVar19 = uVar22 + uVar18 >> 1;\n                iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);\n                if (-1 < iVar20) break;\n                uVar18 = uVar19;\n                if (uVar19 <= uVar22) goto LAB_00065a75;\n              }\n              if (iVar20 == 0) {\n                iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);\n                if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                break;\n              }\n              uVar22 = uVar19 + 1;\n            }\nLAB_00065a75:\n            uVar22 = undef_count;\n            pkVar8 = udef_table;\n            cVar4 = *pcVar13;\n            if (cVar4 != '?') {\n              local_78 = udef_table;\n              if (pcVar14 == (char *)0x0) {\n                if (cVar4 == '@') goto LAB_00065f40;\n                sVar11 = strlen(pcVar13);\n                (pcVar13 + sVar11)[0] = '@';\n                (pcVar13 + sVar11)[1] = '\0';\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }\nLAB_00065e95:\n                cVar4 = *pcVar13;\njoined_r0x00066040:\n                if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }\n                pkVar8 = udef_table;\n                uVar22 = 0;\n                uVar18 = undef_count;\n                while (uVar22 < uVar18) {\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }\n              }\n              else {\n                if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }\n              }\n            }\n            goto LAB_00065b08;\n          }\n          strcpy(__dest,local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\nLAB_00065e00:\n            uVar22 = 1;\n            free(__dest);\n            goto LAB_00065c0f;\n          }\n          sprintf(__dest,"%s%s","__imp_",local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if (iVar20 != 0) {\n            bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\nLAB_00065d23:\n            uVar22 = 0;\n            goto LAB_00065b1c;\n          }\nLAB_00065dc0:\n          free(__dest);\n          goto LAB_00065b37;\n        }\n        goto LAB_00065b8f;\n      }" statement_identifier : (if_statement "if (0 < pe_def_file->num_imports) {\n        local_70 = 0;\n        if (local_68 != pdVar5->module) {\n          local_70 = 0;\n          ppdVar10 = &pdVar5[1].module;\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == pe_def_file->num_imports) goto LAB_000657df;\n            pdVar6 = *ppdVar10;\n            ppdVar10 = ppdVar10 + 6;\n          } while (pdVar6 != local_68);\n        }\n        dll_filename = local_68->name;\n        __ptr = (byte *)xstrdup(dll_filename);\n        bVar3 = *__ptr;\n        pbVar16 = __ptr;\n        dll_symname = (char *)__ptr;\n        while (bVar3 != 0) {\n          if ((puVar9[(uint)bVar3 * 2] & 0x8c) == 0) {\n            *pbVar16 = 0x5f;\n          }\n          pbVar16 = pbVar16 + 1;\n          bVar3 = *pbVar16;\n        }\n        if ((local_70 < pe_def_file->num_imports) &&\n           (local_74 = pdVar5 + local_70, local_68 == local_74->module)) {\n          local_64 = &pdVar5[local_70 + 1].module;\n          bVar7 = false;\nLAB_000658a0:\n          cVar4 = *local_74->internal_name;\n          sVar11 = strlen(local_74->internal_name);\n          __dest = (char *)xmalloc(sVar11 + 8);\n          if (cVar4 != '@') {\n            pcVar13 = local_74->internal_name;\n            pcVar12 = strchr(pcVar13,0x40);\n            pcVar14 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar14 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar14,pcVar13);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\n              if (pcVar12 != (char *)0x0) goto LAB_00065e00;\n              uVar22 = 1;\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s%s","__imp_",pcVar13,local_74->internal_name);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if (iVar20 == 0) {\n              bVar23 = false;\n              if (pcVar12 != (char *)0x0) goto LAB_00065dc0;\n            }\n            else {\n              bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\n              if ((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))\n              goto LAB_00065d23;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar13,local_74->internal_name);\n            sVar11 = strlen(__dest);\n            pcVar13 = (char *)xmalloc(sVar11 + 3);\n            strcpy(pcVar13,__dest);\n            pcVar14 = strchr(pcVar13 + (*pcVar13 == '@'),0x40);\n            if (pcVar14 != (char *)0x0) {\n              pcVar14[1] = '\0';\n            }\n            pkVar8 = udef_table;\n            uVar22 = 0;\n            uVar18 = undef_count;\n            while (uVar22 < uVar18) {\n              while( true ) {\n                uVar19 = uVar22 + uVar18 >> 1;\n                iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);\n                if (-1 < iVar20) break;\n                uVar18 = uVar19;\n                if (uVar19 <= uVar22) goto LAB_00065a75;\n              }\n              if (iVar20 == 0) {\n                iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);\n                if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                break;\n              }\n              uVar22 = uVar19 + 1;\n            }\nLAB_00065a75:\n            uVar22 = undef_count;\n            pkVar8 = udef_table;\n            cVar4 = *pcVar13;\n            if (cVar4 != '?') {\n              local_78 = udef_table;\n              if (pcVar14 == (char *)0x0) {\n                if (cVar4 == '@') goto LAB_00065f40;\n                sVar11 = strlen(pcVar13);\n                (pcVar13 + sVar11)[0] = '@';\n                (pcVar13 + sVar11)[1] = '\0';\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }\nLAB_00065e95:\n                cVar4 = *pcVar13;\njoined_r0x00066040:\n                if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }\n                pkVar8 = udef_table;\n                uVar22 = 0;\n                uVar18 = undef_count;\n                while (uVar22 < uVar18) {\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }\n              }\n              else {\n                if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }\n              }\n            }\n            goto LAB_00065b08;\n          }\n          strcpy(__dest,local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\nLAB_00065e00:\n            uVar22 = 1;\n            free(__dest);\n            goto LAB_00065c0f;\n          }\n          sprintf(__dest,"%s%s","__imp_",local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if (iVar20 != 0) {\n            bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\nLAB_00065d23:\n            uVar22 = 0;\n            goto LAB_00065b1c;\n          }\nLAB_00065dc0:\n          free(__dest);\n          goto LAB_00065b37;\n        }\n        goto LAB_00065b8f;\n      }" if (parenthesized_expression "(0 < pe_def_file->num_imports)" ( (binary_expression "0 < pe_def_file->num_imports" number_literal < (field_expression "pe_def_file->num_imports" identifier -> field_identifier)) )) (compound_statement "{\n        local_70 = 0;\n        if (local_68 != pdVar5->module) {\n          local_70 = 0;\n          ppdVar10 = &pdVar5[1].module;\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == pe_def_file->num_imports) goto LAB_000657df;\n            pdVar6 = *ppdVar10;\n            ppdVar10 = ppdVar10 + 6;\n          } while (pdVar6 != local_68);\n        }\n        dll_filename = local_68->name;\n        __ptr = (byte *)xstrdup(dll_filename);\n        bVar3 = *__ptr;\n        pbVar16 = __ptr;\n        dll_symname = (char *)__ptr;\n        while (bVar3 != 0) {\n          if ((puVar9[(uint)bVar3 * 2] & 0x8c) == 0) {\n            *pbVar16 = 0x5f;\n          }\n          pbVar16 = pbVar16 + 1;\n          bVar3 = *pbVar16;\n        }\n        if ((local_70 < pe_def_file->num_imports) &&\n           (local_74 = pdVar5 + local_70, local_68 == local_74->module)) {\n          local_64 = &pdVar5[local_70 + 1].module;\n          bVar7 = false;\nLAB_000658a0:\n          cVar4 = *local_74->internal_name;\n          sVar11 = strlen(local_74->internal_name);\n          __dest = (char *)xmalloc(sVar11 + 8);\n          if (cVar4 != '@') {\n            pcVar13 = local_74->internal_name;\n            pcVar12 = strchr(pcVar13,0x40);\n            pcVar14 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar14 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar14,pcVar13);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\n              if (pcVar12 != (char *)0x0) goto LAB_00065e00;\n              uVar22 = 1;\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s%s","__imp_",pcVar13,local_74->internal_name);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if (iVar20 == 0) {\n              bVar23 = false;\n              if (pcVar12 != (char *)0x0) goto LAB_00065dc0;\n            }\n            else {\n              bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\n              if ((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))\n              goto LAB_00065d23;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar13,local_74->internal_name);\n            sVar11 = strlen(__dest);\n            pcVar13 = (char *)xmalloc(sVar11 + 3);\n            strcpy(pcVar13,__dest);\n            pcVar14 = strchr(pcVar13 + (*pcVar13 == '@'),0x40);\n            if (pcVar14 != (char *)0x0) {\n              pcVar14[1] = '\0';\n            }\n            pkVar8 = udef_table;\n            uVar22 = 0;\n            uVar18 = undef_count;\n            while (uVar22 < uVar18) {\n              while( true ) {\n                uVar19 = uVar22 + uVar18 >> 1;\n                iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);\n                if (-1 < iVar20) break;\n                uVar18 = uVar19;\n                if (uVar19 <= uVar22) goto LAB_00065a75;\n              }\n              if (iVar20 == 0) {\n                iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);\n                if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                break;\n              }\n              uVar22 = uVar19 + 1;\n            }\nLAB_00065a75:\n            uVar22 = undef_count;\n            pkVar8 = udef_table;\n            cVar4 = *pcVar13;\n            if (cVar4 != '?') {\n              local_78 = udef_table;\n              if (pcVar14 == (char *)0x0) {\n                if (cVar4 == '@') goto LAB_00065f40;\n                sVar11 = strlen(pcVar13);\n                (pcVar13 + sVar11)[0] = '@';\n                (pcVar13 + sVar11)[1] = '\0';\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }\nLAB_00065e95:\n                cVar4 = *pcVar13;\njoined_r0x00066040:\n                if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }\n                pkVar8 = udef_table;\n                uVar22 = 0;\n                uVar18 = undef_count;\n                while (uVar22 < uVar18) {\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }\n              }\n              else {\n                if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }\n              }\n            }\n            goto LAB_00065b08;\n          }\n          strcpy(__dest,local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\nLAB_00065e00:\n            uVar22 = 1;\n            free(__dest);\n            goto LAB_00065c0f;\n          }\n          sprintf(__dest,"%s%s","__imp_",local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if (iVar20 != 0) {\n            bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\nLAB_00065d23:\n            uVar22 = 0;\n            goto LAB_00065b1c;\n          }\nLAB_00065dc0:\n          free(__dest);\n          goto LAB_00065b37;\n        }\n        goto LAB_00065b8f;\n      }" { (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (if_statement "if (local_68 != pdVar5->module) {\n          local_70 = 0;\n          ppdVar10 = &pdVar5[1].module;\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == pe_def_file->num_imports) goto LAB_000657df;\n            pdVar6 = *ppdVar10;\n            ppdVar10 = ppdVar10 + 6;\n          } while (pdVar6 != local_68);\n        }" if (parenthesized_expression "(local_68 != pdVar5->module)" ( (binary_expression "local_68 != pdVar5->module" identifier != (field_expression "pdVar5->module" identifier -> field_identifier)) )) (compound_statement "{\n          local_70 = 0;\n          ppdVar10 = &pdVar5[1].module;\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == pe_def_file->num_imports) goto LAB_000657df;\n            pdVar6 = *ppdVar10;\n            ppdVar10 = ppdVar10 + 6;\n          } while (pdVar6 != local_68);\n        }" { (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "ppdVar10 = &pdVar5[1].module;" (assignment_expression "ppdVar10 = &pdVar5[1].module" identifier = (pointer_expression "&pdVar5[1].module" & (field_expression "pdVar5[1].module" (subscript_expression "pdVar5[1]" identifier [ number_literal ]) . field_identifier))) ;) (do_statement "do {\n            local_70 = local_70 + 1;\n            if (local_70 == pe_def_file->num_imports) goto LAB_000657df;\n            pdVar6 = *ppdVar10;\n            ppdVar10 = ppdVar10 + 6;\n          } while (pdVar6 != local_68);" do (compound_statement "{\n            local_70 = local_70 + 1;\n            if (local_70 == pe_def_file->num_imports) goto LAB_000657df;\n            pdVar6 = *ppdVar10;\n            ppdVar10 = ppdVar10 + 6;\n          }" { (expression_statement "local_70 = local_70 + 1;" (assignment_expression "local_70 = local_70 + 1" identifier = (binary_expression "local_70 + 1" identifier + number_literal)) ;) (if_statement "if (local_70 == pe_def_file->num_imports) goto LAB_000657df;" if (parenthesized_expression "(local_70 == pe_def_file->num_imports)" ( (binary_expression "local_70 == pe_def_file->num_imports" identifier == (field_expression "pe_def_file->num_imports" identifier -> field_identifier)) )) (goto_statement "goto LAB_000657df;" goto statement_identifier ;)) (expression_statement "pdVar6 = *ppdVar10;" (assignment_expression "pdVar6 = *ppdVar10" identifier = (pointer_expression "*ppdVar10" * identifier)) ;) (expression_statement "ppdVar10 = ppdVar10 + 6;" (assignment_expression "ppdVar10 = ppdVar10 + 6" identifier = (binary_expression "ppdVar10 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar6 != local_68)" ( (binary_expression "pdVar6 != local_68" identifier != identifier) )) ;) })) (expression_statement "dll_filename = local_68->name;" (assignment_expression "dll_filename = local_68->name" identifier = (field_expression "local_68->name" identifier -> field_identifier)) ;) (expression_statement "__ptr = (byte *)xstrdup(dll_filename);" (assignment_expression "__ptr = (byte *)xstrdup(dll_filename)" identifier = (cast_expression "(byte *)xstrdup(dll_filename)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(dll_filename)" identifier (argument_list "(dll_filename)" ( identifier ))))) ;) (expression_statement "bVar3 = *__ptr;" (assignment_expression "bVar3 = *__ptr" identifier = (pointer_expression "*__ptr" * identifier)) ;) (expression_statement "pbVar16 = __ptr;" (assignment_expression "pbVar16 = __ptr" identifier = identifier) ;) (expression_statement "dll_symname = (char *)__ptr;" (assignment_expression "dll_symname = (char *)__ptr" identifier = (cast_expression "(char *)__ptr" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (while_statement "while (bVar3 != 0) {\n          if ((puVar9[(uint)bVar3 * 2] & 0x8c) == 0) {\n            *pbVar16 = 0x5f;\n          }\n          pbVar16 = pbVar16 + 1;\n          bVar3 = *pbVar16;\n        }" while (parenthesized_expression "(bVar3 != 0)" ( (binary_expression "bVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          if ((puVar9[(uint)bVar3 * 2] & 0x8c) == 0) {\n            *pbVar16 = 0x5f;\n          }\n          pbVar16 = pbVar16 + 1;\n          bVar3 = *pbVar16;\n        }" { (if_statement "if ((puVar9[(uint)bVar3 * 2] & 0x8c) == 0) {\n            *pbVar16 = 0x5f;\n          }" if (parenthesized_expression "((puVar9[(uint)bVar3 * 2] & 0x8c) == 0)" ( (binary_expression "(puVar9[(uint)bVar3 * 2] & 0x8c) == 0" (parenthesized_expression "(puVar9[(uint)bVar3 * 2] & 0x8c)" ( (binary_expression "puVar9[(uint)bVar3 * 2] & 0x8c" (subscript_expression "puVar9[(uint)bVar3 * 2]" identifier [ (binary_expression "(uint)bVar3 * 2" (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) (compound_statement "{\n            *pbVar16 = 0x5f;\n          }" { (expression_statement "*pbVar16 = 0x5f;" (assignment_expression "*pbVar16 = 0x5f" (pointer_expression "*pbVar16" * identifier) = number_literal) ;) })) (expression_statement "pbVar16 = pbVar16 + 1;" (assignment_expression "pbVar16 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "bVar3 = *pbVar16;" (assignment_expression "bVar3 = *pbVar16" identifier = (pointer_expression "*pbVar16" * identifier)) ;) })) (if_statement "if ((local_70 < pe_def_file->num_imports) &&\n           (local_74 = pdVar5 + local_70, local_68 == local_74->module)) {\n          local_64 = &pdVar5[local_70 + 1].module;\n          bVar7 = false;\nLAB_000658a0:\n          cVar4 = *local_74->internal_name;\n          sVar11 = strlen(local_74->internal_name);\n          __dest = (char *)xmalloc(sVar11 + 8);\n          if (cVar4 != '@') {\n            pcVar13 = local_74->internal_name;\n            pcVar12 = strchr(pcVar13,0x40);\n            pcVar14 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar14 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar14,pcVar13);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\n              if (pcVar12 != (char *)0x0) goto LAB_00065e00;\n              uVar22 = 1;\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s%s","__imp_",pcVar13,local_74->internal_name);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if (iVar20 == 0) {\n              bVar23 = false;\n              if (pcVar12 != (char *)0x0) goto LAB_00065dc0;\n            }\n            else {\n              bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\n              if ((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))\n              goto LAB_00065d23;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar13,local_74->internal_name);\n            sVar11 = strlen(__dest);\n            pcVar13 = (char *)xmalloc(sVar11 + 3);\n            strcpy(pcVar13,__dest);\n            pcVar14 = strchr(pcVar13 + (*pcVar13 == '@'),0x40);\n            if (pcVar14 != (char *)0x0) {\n              pcVar14[1] = '\0';\n            }\n            pkVar8 = udef_table;\n            uVar22 = 0;\n            uVar18 = undef_count;\n            while (uVar22 < uVar18) {\n              while( true ) {\n                uVar19 = uVar22 + uVar18 >> 1;\n                iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);\n                if (-1 < iVar20) break;\n                uVar18 = uVar19;\n                if (uVar19 <= uVar22) goto LAB_00065a75;\n              }\n              if (iVar20 == 0) {\n                iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);\n                if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                break;\n              }\n              uVar22 = uVar19 + 1;\n            }\nLAB_00065a75:\n            uVar22 = undef_count;\n            pkVar8 = udef_table;\n            cVar4 = *pcVar13;\n            if (cVar4 != '?') {\n              local_78 = udef_table;\n              if (pcVar14 == (char *)0x0) {\n                if (cVar4 == '@') goto LAB_00065f40;\n                sVar11 = strlen(pcVar13);\n                (pcVar13 + sVar11)[0] = '@';\n                (pcVar13 + sVar11)[1] = '\0';\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }\nLAB_00065e95:\n                cVar4 = *pcVar13;\njoined_r0x00066040:\n                if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }\n                pkVar8 = udef_table;\n                uVar22 = 0;\n                uVar18 = undef_count;\n                while (uVar22 < uVar18) {\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }\n              }\n              else {\n                if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }\n              }\n            }\n            goto LAB_00065b08;\n          }\n          strcpy(__dest,local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\nLAB_00065e00:\n            uVar22 = 1;\n            free(__dest);\n            goto LAB_00065c0f;\n          }\n          sprintf(__dest,"%s%s","__imp_",local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if (iVar20 != 0) {\n            bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\nLAB_00065d23:\n            uVar22 = 0;\n            goto LAB_00065b1c;\n          }\nLAB_00065dc0:\n          free(__dest);\n          goto LAB_00065b37;\n        }" if (parenthesized_expression "((local_70 < pe_def_file->num_imports) &&\n           (local_74 = pdVar5 + local_70, local_68 == local_74->module))" ( (binary_expression "(local_70 < pe_def_file->num_imports) &&\n           (local_74 = pdVar5 + local_70, local_68 == local_74->module)" (parenthesized_expression "(local_70 < pe_def_file->num_imports)" ( (binary_expression "local_70 < pe_def_file->num_imports" identifier < (field_expression "pe_def_file->num_imports" identifier -> field_identifier)) )) && (parenthesized_expression "(local_74 = pdVar5 + local_70, local_68 == local_74->module)" ( (comma_expression "local_74 = pdVar5 + local_70, local_68 == local_74->module" (assignment_expression "local_74 = pdVar5 + local_70" identifier = (binary_expression "pdVar5 + local_70" identifier + identifier)) , (binary_expression "local_68 == local_74->module" identifier == (field_expression "local_74->module" identifier -> field_identifier))) ))) )) (compound_statement "{\n          local_64 = &pdVar5[local_70 + 1].module;\n          bVar7 = false;\nLAB_000658a0:\n          cVar4 = *local_74->internal_name;\n          sVar11 = strlen(local_74->internal_name);\n          __dest = (char *)xmalloc(sVar11 + 8);\n          if (cVar4 != '@') {\n            pcVar13 = local_74->internal_name;\n            pcVar12 = strchr(pcVar13,0x40);\n            pcVar14 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar14 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar14,pcVar13);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\n              if (pcVar12 != (char *)0x0) goto LAB_00065e00;\n              uVar22 = 1;\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s%s","__imp_",pcVar13,local_74->internal_name);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if (iVar20 == 0) {\n              bVar23 = false;\n              if (pcVar12 != (char *)0x0) goto LAB_00065dc0;\n            }\n            else {\n              bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\n              if ((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))\n              goto LAB_00065d23;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar13,local_74->internal_name);\n            sVar11 = strlen(__dest);\n            pcVar13 = (char *)xmalloc(sVar11 + 3);\n            strcpy(pcVar13,__dest);\n            pcVar14 = strchr(pcVar13 + (*pcVar13 == '@'),0x40);\n            if (pcVar14 != (char *)0x0) {\n              pcVar14[1] = '\0';\n            }\n            pkVar8 = udef_table;\n            uVar22 = 0;\n            uVar18 = undef_count;\n            while (uVar22 < uVar18) {\n              while( true ) {\n                uVar19 = uVar22 + uVar18 >> 1;\n                iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);\n                if (-1 < iVar20) break;\n                uVar18 = uVar19;\n                if (uVar19 <= uVar22) goto LAB_00065a75;\n              }\n              if (iVar20 == 0) {\n                iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);\n                if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                break;\n              }\n              uVar22 = uVar19 + 1;\n            }\nLAB_00065a75:\n            uVar22 = undef_count;\n            pkVar8 = udef_table;\n            cVar4 = *pcVar13;\n            if (cVar4 != '?') {\n              local_78 = udef_table;\n              if (pcVar14 == (char *)0x0) {\n                if (cVar4 == '@') goto LAB_00065f40;\n                sVar11 = strlen(pcVar13);\n                (pcVar13 + sVar11)[0] = '@';\n                (pcVar13 + sVar11)[1] = '\0';\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }\nLAB_00065e95:\n                cVar4 = *pcVar13;\njoined_r0x00066040:\n                if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }\n                pkVar8 = udef_table;\n                uVar22 = 0;\n                uVar18 = undef_count;\n                while (uVar22 < uVar18) {\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }\n              }\n              else {\n                if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }\n              }\n            }\n            goto LAB_00065b08;\n          }\n          strcpy(__dest,local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\nLAB_00065e00:\n            uVar22 = 1;\n            free(__dest);\n            goto LAB_00065c0f;\n          }\n          sprintf(__dest,"%s%s","__imp_",local_74->internal_name);\n          iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n          if (iVar20 != 0) {\n            bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\nLAB_00065d23:\n            uVar22 = 0;\n            goto LAB_00065b1c;\n          }\nLAB_00065dc0:\n          free(__dest);\n          goto LAB_00065b37;\n        }" { (expression_statement "local_64 = &pdVar5[local_70 + 1].module;" (assignment_expression "local_64 = &pdVar5[local_70 + 1].module" identifier = (pointer_expression "&pdVar5[local_70 + 1].module" & (field_expression "pdVar5[local_70 + 1].module" (subscript_expression "pdVar5[local_70 + 1]" identifier [ (binary_expression "local_70 + 1" identifier + number_literal) ]) . field_identifier))) ;) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (labeled_statement "LAB_000658a0:\n          cVar4 = *local_74->internal_name;" statement_identifier : (expression_statement "cVar4 = *local_74->internal_name;" (assignment_expression "cVar4 = *local_74->internal_name" identifier = (pointer_expression "*local_74->internal_name" * (field_expression "local_74->internal_name" identifier -> field_identifier))) ;)) (expression_statement "sVar11 = strlen(local_74->internal_name);" (assignment_expression "sVar11 = strlen(local_74->internal_name)" identifier = (call_expression "strlen(local_74->internal_name)" identifier (argument_list "(local_74->internal_name)" ( (field_expression "local_74->internal_name" identifier -> field_identifier) )))) ;) (expression_statement "__dest = (char *)xmalloc(sVar11 + 8);" (assignment_expression "__dest = (char *)xmalloc(sVar11 + 8)" identifier = (cast_expression "(char *)xmalloc(sVar11 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar11 + 8)" identifier (argument_list "(sVar11 + 8)" ( (binary_expression "sVar11 + 8" identifier + number_literal) ))))) ;) (if_statement "if (cVar4 != '@') {\n            pcVar13 = local_74->internal_name;\n            pcVar12 = strchr(pcVar13,0x40);\n            pcVar14 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar14 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar14,pcVar13);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\n              if (pcVar12 != (char *)0x0) goto LAB_00065e00;\n              uVar22 = 1;\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s%s","__imp_",pcVar13,local_74->internal_name);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if (iVar20 == 0) {\n              bVar23 = false;\n              if (pcVar12 != (char *)0x0) goto LAB_00065dc0;\n            }\n            else {\n              bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\n              if ((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))\n              goto LAB_00065d23;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar13,local_74->internal_name);\n            sVar11 = strlen(__dest);\n            pcVar13 = (char *)xmalloc(sVar11 + 3);\n            strcpy(pcVar13,__dest);\n            pcVar14 = strchr(pcVar13 + (*pcVar13 == '@'),0x40);\n            if (pcVar14 != (char *)0x0) {\n              pcVar14[1] = '\0';\n            }\n            pkVar8 = udef_table;\n            uVar22 = 0;\n            uVar18 = undef_count;\n            while (uVar22 < uVar18) {\n              while( true ) {\n                uVar19 = uVar22 + uVar18 >> 1;\n                iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);\n                if (-1 < iVar20) break;\n                uVar18 = uVar19;\n                if (uVar19 <= uVar22) goto LAB_00065a75;\n              }\n              if (iVar20 == 0) {\n                iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);\n                if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                break;\n              }\n              uVar22 = uVar19 + 1;\n            }\nLAB_00065a75:\n            uVar22 = undef_count;\n            pkVar8 = udef_table;\n            cVar4 = *pcVar13;\n            if (cVar4 != '?') {\n              local_78 = udef_table;\n              if (pcVar14 == (char *)0x0) {\n                if (cVar4 == '@') goto LAB_00065f40;\n                sVar11 = strlen(pcVar13);\n                (pcVar13 + sVar11)[0] = '@';\n                (pcVar13 + sVar11)[1] = '\0';\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }\nLAB_00065e95:\n                cVar4 = *pcVar13;\njoined_r0x00066040:\n                if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }\n                pkVar8 = udef_table;\n                uVar22 = 0;\n                uVar18 = undef_count;\n                while (uVar22 < uVar18) {\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }\n              }\n              else {\n                if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }\n              }\n            }\n            goto LAB_00065b08;\n          }" if (parenthesized_expression "(cVar4 != '@')" ( (binary_expression "cVar4 != '@'" identifier != (char_literal "'@'" ' character ')) )) (compound_statement "{\n            pcVar13 = local_74->internal_name;\n            pcVar12 = strchr(pcVar13,0x40);\n            pcVar14 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar14 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar14,pcVar13);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\n              if (pcVar12 != (char *)0x0) goto LAB_00065e00;\n              uVar22 = 1;\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s%s","__imp_",pcVar13,local_74->internal_name);\n            iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);\n            if (iVar20 == 0) {\n              bVar23 = false;\n              if (pcVar12 != (char *)0x0) goto LAB_00065dc0;\n            }\n            else {\n              bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\n              if ((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))\n              goto LAB_00065d23;\n            }\n            pcVar13 = "_";\n            if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\n            }\n            sprintf(__dest,"%s%s",pcVar13,local_74->internal_name);\n            sVar11 = strlen(__dest);\n            pcVar13 = (char *)xmalloc(sVar11 + 3);\n            strcpy(pcVar13,__dest);\n            pcVar14 = strchr(pcVar13 + (*pcVar13 == '@'),0x40);\n            if (pcVar14 != (char *)0x0) {\n              pcVar14[1] = '\0';\n            }\n            pkVar8 = udef_table;\n            uVar22 = 0;\n            uVar18 = undef_count;\n            while (uVar22 < uVar18) {\n              while( true ) {\n                uVar19 = uVar22 + uVar18 >> 1;\n                iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);\n                if (-1 < iVar20) break;\n                uVar18 = uVar19;\n                if (uVar19 <= uVar22) goto LAB_00065a75;\n              }\n              if (iVar20 == 0) {\n                iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);\n                if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                break;\n              }\n              uVar22 = uVar19 + 1;\n            }\nLAB_00065a75:\n            uVar22 = undef_count;\n            pkVar8 = udef_table;\n            cVar4 = *pcVar13;\n            if (cVar4 != '?') {\n              local_78 = udef_table;\n              if (pcVar14 == (char *)0x0) {\n                if (cVar4 == '@') goto LAB_00065f40;\n                sVar11 = strlen(pcVar13);\n                (pcVar13 + sVar11)[0] = '@';\n                (pcVar13 + sVar11)[1] = '\0';\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }\nLAB_00065e95:\n                cVar4 = *pcVar13;\njoined_r0x00066040:\n                if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }\n                pkVar8 = udef_table;\n                uVar22 = 0;\n                uVar18 = undef_count;\n                while (uVar22 < uVar18) {\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }\n              }\n              else {\n                if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }\n              }\n            }\n            goto LAB_00065b08;\n          }" { (expression_statement "pcVar13 = local_74->internal_name;" (assignment_expression "pcVar13 = local_74->internal_name" identifier = (field_expression "local_74->internal_name" identifier -> field_identifier)) ;) (expression_statement "pcVar12 = strchr(pcVar13,0x40);" (assignment_expression "pcVar12 = strchr(pcVar13,0x40)" identifier = (call_expression "strchr(pcVar13,0x40)" identifier (argument_list "(pcVar13,0x40)" ( identifier , number_literal )))) ;) (expression_statement "pcVar14 = "_";" (assignment_expression "pcVar14 = "_"" identifier = (string_literal ""_"" " string_content ")) ;) (if_statement "if (pe_details->underscored == 0) {\n              pcVar14 = pcVar1;\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              pcVar14 = pcVar1;\n            }" { (expression_statement "pcVar14 = pcVar1;" (assignment_expression "pcVar14 = pcVar1" identifier = identifier) ;) })) (expression_statement "sprintf(__dest,"%s%s",pcVar14,pcVar13);" (call_expression "sprintf(__dest,"%s%s",pcVar14,pcVar13)" identifier (argument_list "(__dest,"%s%s",pcVar14,pcVar13)" ( identifier , (string_literal ""%s%s"" " string_content ") , identifier , identifier ))) ;) (expression_statement "iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);" (assignment_expression "iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(linfo->hash,__dest,0,0,0)" identifier (argument_list "(linfo->hash,__dest,0,0,0)" ( (field_expression "linfo->hash" identifier -> field_identifier) , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\n              if (pcVar12 != (char *)0x0) goto LAB_00065e00;\n              uVar22 = 1;\n              free(__dest);\n              goto LAB_00065c0f;\n            }" if (parenthesized_expression "((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01'))" ( (binary_expression "(iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')" (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)(iVar20 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar20 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar20 + 0xc)" * (cast_expression "(char *)(iVar20 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) ))) )) (compound_statement "{\n              if (pcVar12 != (char *)0x0) goto LAB_00065e00;\n              uVar22 = 1;\n              free(__dest);\n              goto LAB_00065c0f;\n            }" { (if_statement "if (pcVar12 != (char *)0x0) goto LAB_00065e00;" if (parenthesized_expression "(pcVar12 != (char *)0x0)" ( (binary_expression "pcVar12 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00065e00;" goto statement_identifier ;)) (expression_statement "uVar22 = 1;" (assignment_expression "uVar22 = 1" identifier = number_literal) ;) (expression_statement "free(__dest);" (call_expression "free(__dest)" identifier (argument_list "(__dest)" ( identifier ))) ;) (goto_statement "goto LAB_00065c0f;" goto statement_identifier ;) })) (expression_statement "pcVar13 = "_";" (assignment_expression "pcVar13 = "_"" identifier = (string_literal ""_"" " string_content ")) ;) (if_statement "if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\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              pcVar13 = pcVar1;\n            }" { (expression_statement "pcVar13 = pcVar1;" (assignment_expression "pcVar13 = pcVar1" identifier = identifier) ;) })) (expression_statement "sprintf(__dest,"%s%s%s","__imp_",pcVar13,local_74->internal_name);" (call_expression "sprintf(__dest,"%s%s%s","__imp_",pcVar13,local_74->internal_name)" identifier (argument_list "(__dest,"%s%s%s","__imp_",pcVar13,local_74->internal_name)" ( identifier , (string_literal ""%s%s%s"" " string_content ") , (string_literal ""__imp_"" " string_content ") , identifier , (field_expression "local_74->internal_name" identifier -> field_identifier) ))) ;) (expression_statement "iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);" (assignment_expression "iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(linfo->hash,__dest,0,0,0)" identifier (argument_list "(linfo->hash,__dest,0,0,0)" ( (field_expression "linfo->hash" identifier -> field_identifier) , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar20 == 0) {\n              bVar23 = false;\n              if (pcVar12 != (char *)0x0) goto LAB_00065dc0;\n            }\n            else {\n              bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\n              if ((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))\n              goto LAB_00065d23;\n            }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n              bVar23 = false;\n              if (pcVar12 != (char *)0x0) goto LAB_00065dc0;\n            }" { (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (if_statement "if (pcVar12 != (char *)0x0) goto LAB_00065dc0;" if (parenthesized_expression "(pcVar12 != (char *)0x0)" ( (binary_expression "pcVar12 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00065dc0;" goto statement_identifier ;)) }) (else_clause "else {\n              bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\n              if ((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))\n              goto LAB_00065d23;\n            }" else (compound_statement "{\n              bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\n              if ((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))\n              goto LAB_00065d23;\n            }" { (expression_statement "bVar23 = *(char *)(iVar20 + 0xc) == '\x01';" (assignment_expression "bVar23 = *(char *)(iVar20 + 0xc) == '\x01'" identifier = (binary_expression "*(char *)(iVar20 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar20 + 0xc)" * (cast_expression "(char *)(iVar20 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence '))) ;) (if_statement "if ((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))\n              goto LAB_00065d23;" if (parenthesized_expression "((pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01'))" ( (binary_expression "(pcVar12 != (char *)0x0) || (*(char *)(iVar20 + 0xc) == '\x01')" (parenthesized_expression "(pcVar12 != (char *)0x0)" ( (binary_expression "pcVar12 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*(char *)(iVar20 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar20 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar20 + 0xc)" * (cast_expression "(char *)(iVar20 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00065d23;" goto statement_identifier ;)) }))) (expression_statement "pcVar13 = "_";" (assignment_expression "pcVar13 = "_"" identifier = (string_literal ""_"" " string_content ")) ;) (if_statement "if (pe_details->underscored == 0) {\n              pcVar13 = pcVar1;\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              pcVar13 = pcVar1;\n            }" { (expression_statement "pcVar13 = pcVar1;" (assignment_expression "pcVar13 = pcVar1" identifier = identifier) ;) })) (expression_statement "sprintf(__dest,"%s%s",pcVar13,local_74->internal_name);" (call_expression "sprintf(__dest,"%s%s",pcVar13,local_74->internal_name)" identifier (argument_list "(__dest,"%s%s",pcVar13,local_74->internal_name)" ( identifier , (string_literal ""%s%s"" " string_content ") , identifier , (field_expression "local_74->internal_name" identifier -> field_identifier) ))) ;) (expression_statement "sVar11 = strlen(__dest);" (assignment_expression "sVar11 = strlen(__dest)" identifier = (call_expression "strlen(__dest)" identifier (argument_list "(__dest)" ( identifier )))) ;) (expression_statement "pcVar13 = (char *)xmalloc(sVar11 + 3);" (assignment_expression "pcVar13 = (char *)xmalloc(sVar11 + 3)" identifier = (cast_expression "(char *)xmalloc(sVar11 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar11 + 3)" identifier (argument_list "(sVar11 + 3)" ( (binary_expression "sVar11 + 3" identifier + number_literal) ))))) ;) (expression_statement "strcpy(pcVar13,__dest);" (call_expression "strcpy(pcVar13,__dest)" identifier (argument_list "(pcVar13,__dest)" ( identifier , identifier ))) ;) (expression_statement "pcVar14 = strchr(pcVar13 + (*pcVar13 == '@'),0x40);" (assignment_expression "pcVar14 = strchr(pcVar13 + (*pcVar13 == '@'),0x40)" identifier = (call_expression "strchr(pcVar13 + (*pcVar13 == '@'),0x40)" identifier (argument_list "(pcVar13 + (*pcVar13 == '@'),0x40)" ( (binary_expression "pcVar13 + (*pcVar13 == '@')" identifier + (parenthesized_expression "(*pcVar13 == '@')" ( (binary_expression "*pcVar13 == '@'" (pointer_expression "*pcVar13" * identifier) == (char_literal "'@'" ' character ')) ))) , number_literal )))) ;) (if_statement "if (pcVar14 != (char *)0x0) {\n              pcVar14[1] = '\0';\n            }" if (parenthesized_expression "(pcVar14 != (char *)0x0)" ( (binary_expression "pcVar14 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar14[1] = '\0';\n            }" { (expression_statement "pcVar14[1] = '\0';" (assignment_expression "pcVar14[1] = '\0'" (subscript_expression "pcVar14[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "pkVar8 = udef_table;" (assignment_expression "pkVar8 = udef_table" identifier = identifier) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = undef_count;" (assignment_expression "uVar18 = undef_count" identifier = identifier) ;) (while_statement "while (uVar22 < uVar18) {\n              while( true ) {\n                uVar19 = uVar22 + uVar18 >> 1;\n                iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);\n                if (-1 < iVar20) break;\n                uVar18 = uVar19;\n                if (uVar19 <= uVar22) goto LAB_00065a75;\n              }\n              if (iVar20 == 0) {\n                iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);\n                if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                break;\n              }\n              uVar22 = uVar19 + 1;\n            }" while (parenthesized_expression "(uVar22 < uVar18)" ( (binary_expression "uVar22 < uVar18" identifier < identifier) )) (compound_statement "{\n              while( true ) {\n                uVar19 = uVar22 + uVar18 >> 1;\n                iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);\n                if (-1 < iVar20) break;\n                uVar18 = uVar19;\n                if (uVar19 <= uVar22) goto LAB_00065a75;\n              }\n              if (iVar20 == 0) {\n                iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);\n                if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                break;\n              }\n              uVar22 = uVar19 + 1;\n            }" { (while_statement "while( true ) {\n                uVar19 = uVar22 + uVar18 >> 1;\n                iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);\n                if (-1 < iVar20) break;\n                uVar18 = uVar19;\n                if (uVar19 <= uVar22) goto LAB_00065a75;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar19 = uVar22 + uVar18 >> 1;\n                iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);\n                if (-1 < iVar20) break;\n                uVar18 = uVar19;\n                if (uVar19 <= uVar22) goto LAB_00065a75;\n              }" { (expression_statement "uVar19 = uVar22 + uVar18 >> 1;" (assignment_expression "uVar19 = uVar22 + uVar18 >> 1" identifier = (binary_expression "uVar22 + uVar18 >> 1" (binary_expression "uVar22 + uVar18" identifier + identifier) >> number_literal)) ;) (expression_statement "iVar20 = strcmp(pcVar13,pkVar8[uVar19].key);" (assignment_expression "iVar20 = strcmp(pcVar13,pkVar8[uVar19].key)" identifier = (call_expression "strcmp(pcVar13,pkVar8[uVar19].key)" identifier (argument_list "(pcVar13,pkVar8[uVar19].key)" ( identifier , (field_expression "pkVar8[uVar19].key" (subscript_expression "pkVar8[uVar19]" identifier [ identifier ]) . field_identifier) )))) ;) (if_statement "if (-1 < iVar20) break;" if (parenthesized_expression "(-1 < iVar20)" ( (binary_expression "-1 < iVar20" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar18 = uVar19;" (assignment_expression "uVar18 = uVar19" identifier = identifier) ;) (if_statement "if (uVar19 <= uVar22) goto LAB_00065a75;" if (parenthesized_expression "(uVar19 <= uVar22)" ( (binary_expression "uVar19 <= uVar22" identifier <= identifier) )) (goto_statement "goto LAB_00065a75;" goto statement_identifier ;)) })) (if_statement "if (iVar20 == 0) {\n                iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);\n                if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                break;\n              }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n                iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);\n                if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                break;\n              }" { (expression_statement "iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0);" (assignment_expression "iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(linfo->hash,pkVar8[uVar19].oname,0,0,0)" identifier (argument_list "(linfo->hash,pkVar8[uVar19].oname,0,0,0)" ( (field_expression "linfo->hash" identifier -> field_identifier) , (field_expression "pkVar8[uVar19].oname" (subscript_expression "pkVar8[uVar19]" identifier [ identifier ]) . field_identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;" if (parenthesized_expression "(*(char *)(iVar20 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar20 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar20 + 0xc)" * (cast_expression "(char *)(iVar20 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) (goto_statement "goto LAB_00065d58;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "uVar22 = uVar19 + 1;" (assignment_expression "uVar22 = uVar19 + 1" identifier = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) })) (labeled_statement "LAB_00065a75:\n            uVar22 = undef_count;" statement_identifier : (expression_statement "uVar22 = undef_count;" (assignment_expression "uVar22 = undef_count" identifier = identifier) ;)) (expression_statement "pkVar8 = udef_table;" (assignment_expression "pkVar8 = udef_table" identifier = identifier) ;) (expression_statement "cVar4 = *pcVar13;" (assignment_expression "cVar4 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (if_statement "if (cVar4 != '?') {\n              local_78 = udef_table;\n              if (pcVar14 == (char *)0x0) {\n                if (cVar4 == '@') goto LAB_00065f40;\n                sVar11 = strlen(pcVar13);\n                (pcVar13 + sVar11)[0] = '@';\n                (pcVar13 + sVar11)[1] = '\0';\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }\nLAB_00065e95:\n                cVar4 = *pcVar13;\njoined_r0x00066040:\n                if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }\n                pkVar8 = udef_table;\n                uVar22 = 0;\n                uVar18 = undef_count;\n                while (uVar22 < uVar18) {\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }\n              }\n              else {\n                if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }\n              }\n            }" if (parenthesized_expression "(cVar4 != '?')" ( (binary_expression "cVar4 != '?'" identifier != (char_literal "'?'" ' character ')) )) (compound_statement "{\n              local_78 = udef_table;\n              if (pcVar14 == (char *)0x0) {\n                if (cVar4 == '@') goto LAB_00065f40;\n                sVar11 = strlen(pcVar13);\n                (pcVar13 + sVar11)[0] = '@';\n                (pcVar13 + sVar11)[1] = '\0';\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }\nLAB_00065e95:\n                cVar4 = *pcVar13;\njoined_r0x00066040:\n                if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }\n                pkVar8 = udef_table;\n                uVar22 = 0;\n                uVar18 = undef_count;\n                while (uVar22 < uVar18) {\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }\n              }\n              else {\n                if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }\n              }\n            }" { (expression_statement "local_78 = udef_table;" (assignment_expression "local_78 = udef_table" identifier = identifier) ;) (if_statement "if (pcVar14 == (char *)0x0) {\n                if (cVar4 == '@') goto LAB_00065f40;\n                sVar11 = strlen(pcVar13);\n                (pcVar13 + sVar11)[0] = '@';\n                (pcVar13 + sVar11)[1] = '\0';\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }\nLAB_00065e95:\n                cVar4 = *pcVar13;\njoined_r0x00066040:\n                if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }\n                pkVar8 = udef_table;\n                uVar22 = 0;\n                uVar18 = undef_count;\n                while (uVar22 < uVar18) {\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }\n              }\n              else {\n                if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }\n              }" if (parenthesized_expression "(pcVar14 == (char *)0x0)" ( (binary_expression "pcVar14 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                if (cVar4 == '@') goto LAB_00065f40;\n                sVar11 = strlen(pcVar13);\n                (pcVar13 + sVar11)[0] = '@';\n                (pcVar13 + sVar11)[1] = '\0';\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }\nLAB_00065e95:\n                cVar4 = *pcVar13;\njoined_r0x00066040:\n                if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }\n                pkVar8 = udef_table;\n                uVar22 = 0;\n                uVar18 = undef_count;\n                while (uVar22 < uVar18) {\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }\n              }" { (if_statement "if (cVar4 == '@') goto LAB_00065f40;" if (parenthesized_expression "(cVar4 == '@')" ( (binary_expression "cVar4 == '@'" identifier == (char_literal "'@'" ' character ')) )) (goto_statement "goto LAB_00065f40;" goto statement_identifier ;)) (expression_statement "sVar11 = strlen(pcVar13);" (assignment_expression "sVar11 = strlen(pcVar13)" identifier = (call_expression "strlen(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier )))) ;) (expression_statement "(pcVar13 + sVar11)[0] = '@';" (assignment_expression "(pcVar13 + sVar11)[0] = '@'" (subscript_expression "(pcVar13 + sVar11)[0]" (parenthesized_expression "(pcVar13 + sVar11)" ( (binary_expression "pcVar13 + sVar11" identifier + identifier) )) [ number_literal ]) = (char_literal "'@'" ' character ')) ;) (expression_statement "(pcVar13 + sVar11)[1] = '\0';" (assignment_expression "(pcVar13 + sVar11)[1] = '\0'" (subscript_expression "(pcVar13 + sVar11)[1]" (parenthesized_expression "(pcVar13 + sVar11)" ( (binary_expression "pcVar13 + sVar11" identifier + identifier) )) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (while_statement "while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }" while (parenthesized_expression "(uVar18 < uVar22)" ( (binary_expression "uVar18 < uVar22" identifier < identifier) )) (compound_statement "{\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }\n                  if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }\n                  uVar18 = uVar19 + 1;\n                }" { (while_statement "while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065e95;\n                  }" { (expression_statement "uVar19 = uVar22 + uVar18 >> 1;" (assignment_expression "uVar19 = uVar22 + uVar18 >> 1" identifier = (binary_expression "uVar22 + uVar18 >> 1" (binary_expression "uVar22 + uVar18" identifier + identifier) >> number_literal)) ;) (expression_statement "pkVar17 = pkVar8 + uVar19;" (assignment_expression "pkVar17 = pkVar8 + uVar19" identifier = (binary_expression "pkVar8 + uVar19" identifier + identifier)) ;) (expression_statement "iVar20 = strcmp(pcVar13,pkVar17->key);" (assignment_expression "iVar20 = strcmp(pcVar13,pkVar17->key)" identifier = (call_expression "strcmp(pcVar13,pkVar17->key)" identifier (argument_list "(pcVar13,pkVar17->key)" ( identifier , (field_expression "pkVar17->key" identifier -> field_identifier) )))) ;) (if_statement "if (-1 < iVar20) break;" if (parenthesized_expression "(-1 < iVar20)" ( (binary_expression "-1 < iVar20" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar22 = uVar19;" (assignment_expression "uVar22 = uVar19" identifier = identifier) ;) (if_statement "if (uVar19 <= uVar18) goto LAB_00065e95;" if (parenthesized_expression "(uVar19 <= uVar18)" ( (binary_expression "uVar19 <= uVar18" identifier <= identifier) )) (goto_statement "goto LAB_00065e95;" goto statement_identifier ;)) })) (if_statement "if (iVar20 == 0) {\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n                    iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                    if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                    cVar4 = *pcVar13;\n                    goto joined_r0x00066040;\n                  }" { (expression_statement "iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);" (assignment_expression "iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0)" identifier (argument_list "(linfo->hash,pkVar17->oname,0,0,0)" ( (field_expression "linfo->hash" identifier -> field_identifier) , (field_expression "pkVar17->oname" identifier -> field_identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;" if (parenthesized_expression "(*(char *)(iVar20 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar20 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar20 + 0xc)" * (cast_expression "(char *)(iVar20 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) (goto_statement "goto LAB_00065d58;" goto statement_identifier ;)) (expression_statement "cVar4 = *pcVar13;" (assignment_expression "cVar4 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (goto_statement "goto joined_r0x00066040;" goto statement_identifier ;) })) (expression_statement "uVar18 = uVar19 + 1;" (assignment_expression "uVar18 = uVar19 + 1" identifier = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) })) (labeled_statement "LAB_00065e95:\n                cVar4 = *pcVar13;" statement_identifier : (expression_statement "cVar4 = *pcVar13;" (assignment_expression "cVar4 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;)) (labeled_statement "joined_r0x00066040:\n                if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }" statement_identifier : (if_statement "if ((cVar4 == '_') && (pe_details->underscored != 0)) {\n                  *pcVar13 = '@';\n                }\n                else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }" if (parenthesized_expression "((cVar4 == '_') && (pe_details->underscored != 0))" ( (binary_expression "(cVar4 == '_') && (pe_details->underscored != 0)" (parenthesized_expression "(cVar4 == '_')" ( (binary_expression "cVar4 == '_'" identifier == (char_literal "'_'" ' character ')) )) && (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                  *pcVar13 = '@';\n                }" { (expression_statement "*pcVar13 = '@';" (assignment_expression "*pcVar13 = '@'" (pointer_expression "*pcVar13" * identifier) = (char_literal "'@'" ' character ')) ;) }) (else_clause "else {\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }" else (compound_statement "{\n                  memmove(pcVar13 + 1,pcVar13,sVar11 + 2);\n                  *pcVar13 = '@';\n                }" { (expression_statement "memmove(pcVar13 + 1,pcVar13,sVar11 + 2);" (call_expression "memmove(pcVar13 + 1,pcVar13,sVar11 + 2)" identifier (argument_list "(pcVar13 + 1,pcVar13,sVar11 + 2)" ( (binary_expression "pcVar13 + 1" identifier + number_literal) , identifier , (binary_expression "sVar11 + 2" identifier + number_literal) ))) ;) (expression_statement "*pcVar13 = '@';" (assignment_expression "*pcVar13 = '@'" (pointer_expression "*pcVar13" * identifier) = (char_literal "'@'" ' character ')) ;) })))) (expression_statement "pkVar8 = udef_table;" (assignment_expression "pkVar8 = udef_table" identifier = identifier) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (expression_statement "uVar18 = undef_count;" (assignment_expression "uVar18 = undef_count" identifier = identifier) ;) (while_statement "while (uVar22 < uVar18) {\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }" while (parenthesized_expression "(uVar22 < uVar18)" ( (binary_expression "uVar22 < uVar18" identifier < identifier) )) (compound_statement "{\n                  while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar22 = uVar19 + 1;\n                }" { (while_statement "while( true ) {\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                    uVar19 = uVar18 + uVar22 >> 1;\n                    pkVar17 = pkVar8 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar18 = uVar19;\n                    if (uVar19 <= uVar22) goto LAB_00065b08;\n                  }" { (expression_statement "uVar19 = uVar18 + uVar22 >> 1;" (assignment_expression "uVar19 = uVar18 + uVar22 >> 1" identifier = (binary_expression "uVar18 + uVar22 >> 1" (binary_expression "uVar18 + uVar22" identifier + identifier) >> number_literal)) ;) (expression_statement "pkVar17 = pkVar8 + uVar19;" (assignment_expression "pkVar17 = pkVar8 + uVar19" identifier = (binary_expression "pkVar8 + uVar19" identifier + identifier)) ;) (expression_statement "iVar20 = strcmp(pcVar13,pkVar17->key);" (assignment_expression "iVar20 = strcmp(pcVar13,pkVar17->key)" identifier = (call_expression "strcmp(pcVar13,pkVar17->key)" identifier (argument_list "(pcVar13,pkVar17->key)" ( identifier , (field_expression "pkVar17->key" identifier -> field_identifier) )))) ;) (if_statement "if (-1 < iVar20) break;" if (parenthesized_expression "(-1 < iVar20)" ( (binary_expression "-1 < iVar20" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar18 = uVar19;" (assignment_expression "uVar18 = uVar19" identifier = identifier) ;) (if_statement "if (uVar19 <= uVar22) goto LAB_00065b08;" if (parenthesized_expression "(uVar19 <= uVar22)" ( (binary_expression "uVar19 <= uVar22" identifier <= identifier) )) (goto_statement "goto LAB_00065b08;" goto statement_identifier ;)) })) (if_statement "if (iVar20 == 0) goto LAB_00065d30;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00065d30;" goto statement_identifier ;)) (expression_statement "uVar22 = uVar19 + 1;" (assignment_expression "uVar22 = uVar19 + 1" identifier = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) })) }) (else_clause "else {\n                if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }\n              }" else (compound_statement "{\n                if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }\n                uVar18 = 0;\n                while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }\n              }" { (if_statement "if (cVar4 == '@') {\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }\n                else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }" if (parenthesized_expression "(cVar4 == '@')" ( (binary_expression "cVar4 == '@'" identifier == (char_literal "'@'" ' character ')) )) (compound_statement "{\nLAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }\n                  uVar18 = 0;\n                  uVar19 = uVar22;\n                  while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }\nLAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;\n                }" { (labeled_statement "LAB_00065f40:\n                  if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\n                  }" statement_identifier : (if_statement "if (pe_details->underscored == 0) {\n                    strcpy(pcVar13,pcVar13 + 1);\n                  }\n                  else {\n                    *pcVar13 = '_';\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                    strcpy(pcVar13,pcVar13 + 1);\n                  }" { (expression_statement "strcpy(pcVar13,pcVar13 + 1);" (call_expression "strcpy(pcVar13,pcVar13 + 1)" identifier (argument_list "(pcVar13,pcVar13 + 1)" ( identifier , (binary_expression "pcVar13 + 1" identifier + number_literal) ))) ;) }) (else_clause "else {\n                    *pcVar13 = '_';\n                  }" else (compound_statement "{\n                    *pcVar13 = '_';\n                  }" { (expression_statement "*pcVar13 = '_';" (assignment_expression "*pcVar13 = '_'" (pointer_expression "*pcVar13" * identifier) = (char_literal "'_'" ' character ')) ;) })))) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar19 = uVar22;" (assignment_expression "uVar19 = uVar22" identifier = identifier) ;) (while_statement "while (uVar18 < uVar19) {\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }" while (parenthesized_expression "(uVar18 < uVar19)" ( (binary_expression "uVar18 < uVar19" identifier < identifier) )) (compound_statement "{\n                    while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }\n                    if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }\n                    uVar18 = uVar21 + 1;\n                  }" { (while_statement "while( true ) {\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      uVar21 = uVar19 + uVar18 >> 1;\n                      pkVar17 = pkVar8 + uVar21;\n                      iVar20 = strcmp(pcVar13,pkVar17->key);\n                      if (-1 < iVar20) break;\n                      uVar19 = uVar21;\n                      if (uVar21 <= uVar18) goto LAB_00065fad;\n                    }" { (expression_statement "uVar21 = uVar19 + uVar18 >> 1;" (assignment_expression "uVar21 = uVar19 + uVar18 >> 1" identifier = (binary_expression "uVar19 + uVar18 >> 1" (binary_expression "uVar19 + uVar18" identifier + identifier) >> number_literal)) ;) (expression_statement "pkVar17 = pkVar8 + uVar21;" (assignment_expression "pkVar17 = pkVar8 + uVar21" identifier = (binary_expression "pkVar8 + uVar21" identifier + identifier)) ;) (expression_statement "iVar20 = strcmp(pcVar13,pkVar17->key);" (assignment_expression "iVar20 = strcmp(pcVar13,pkVar17->key)" identifier = (call_expression "strcmp(pcVar13,pkVar17->key)" identifier (argument_list "(pcVar13,pkVar17->key)" ( identifier , (field_expression "pkVar17->key" identifier -> field_identifier) )))) ;) (if_statement "if (-1 < iVar20) break;" if (parenthesized_expression "(-1 < iVar20)" ( (binary_expression "-1 < iVar20" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar19 = uVar21;" (assignment_expression "uVar19 = uVar21" identifier = identifier) ;) (if_statement "if (uVar21 <= uVar18) goto LAB_00065fad;" if (parenthesized_expression "(uVar21 <= uVar18)" ( (binary_expression "uVar21 <= uVar18" identifier <= identifier) )) (goto_statement "goto LAB_00065fad;" goto statement_identifier ;)) })) (if_statement "if (iVar20 == 0) {\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n                      iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);\n                      if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;\n                      local_78 = udef_table;\n                      uVar22 = undef_count;\n                      break;\n                    }" { (expression_statement "iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);" (assignment_expression "iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0)" identifier (argument_list "(linfo->hash,pkVar17->oname,0,0,0)" ( (field_expression "linfo->hash" identifier -> field_identifier) , (field_expression "pkVar17->oname" identifier -> field_identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (*(char *)(iVar20 + 0xc) == '\x01') goto LAB_00065d58;" if (parenthesized_expression "(*(char *)(iVar20 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar20 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar20 + 0xc)" * (cast_expression "(char *)(iVar20 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) (goto_statement "goto LAB_00065d58;" goto statement_identifier ;)) (expression_statement "local_78 = udef_table;" (assignment_expression "local_78 = udef_table" identifier = identifier) ;) (expression_statement "uVar22 = undef_count;" (assignment_expression "uVar22 = undef_count" identifier = identifier) ;) (break_statement "break;" break ;) })) (expression_statement "uVar18 = uVar21 + 1;" (assignment_expression "uVar18 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;) })) (labeled_statement "LAB_00065fad:\n                  if (pcVar14 != (char *)0x0) goto LAB_00065aa8;" statement_identifier : (if_statement "if (pcVar14 != (char *)0x0) goto LAB_00065aa8;" if (parenthesized_expression "(pcVar14 != (char *)0x0)" ( (binary_expression "pcVar14 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00065aa8;" goto statement_identifier ;))) }) (else_clause "else {\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }" else (compound_statement "{\nLAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);\n                  *pcVar14 = '\0';\n                }" { (labeled_statement "LAB_00065aa8:\n                  pcVar14 = strchr(pcVar13,0x40);" statement_identifier : (expression_statement "pcVar14 = strchr(pcVar13,0x40);" (assignment_expression "pcVar14 = strchr(pcVar13,0x40)" identifier = (call_expression "strchr(pcVar13,0x40)" identifier (argument_list "(pcVar13,0x40)" ( identifier , number_literal )))) ;)) (expression_statement "*pcVar14 = '\0';" (assignment_expression "*pcVar14 = '\0'" (pointer_expression "*pcVar14" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (while_statement "while (uVar18 < uVar22) {\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }" while (parenthesized_expression "(uVar18 < uVar22)" ( (binary_expression "uVar18 < uVar22" identifier < identifier) )) (compound_statement "{\n                  while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }\n                  if (iVar20 == 0) goto LAB_00065d30;\n                  uVar18 = uVar19 + 1;\n                }" { (while_statement "while( true ) {\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                    uVar19 = uVar22 + uVar18 >> 1;\n                    pkVar17 = local_78 + uVar19;\n                    iVar20 = strcmp(pcVar13,pkVar17->key);\n                    if (-1 < iVar20) break;\n                    uVar22 = uVar19;\n                    if (uVar19 <= uVar18) goto LAB_00065b08;\n                  }" { (expression_statement "uVar19 = uVar22 + uVar18 >> 1;" (assignment_expression "uVar19 = uVar22 + uVar18 >> 1" identifier = (binary_expression "uVar22 + uVar18 >> 1" (binary_expression "uVar22 + uVar18" identifier + identifier) >> number_literal)) ;) (expression_statement "pkVar17 = local_78 + uVar19;" (assignment_expression "pkVar17 = local_78 + uVar19" identifier = (binary_expression "local_78 + uVar19" identifier + identifier)) ;) (expression_statement "iVar20 = strcmp(pcVar13,pkVar17->key);" (assignment_expression "iVar20 = strcmp(pcVar13,pkVar17->key)" identifier = (call_expression "strcmp(pcVar13,pkVar17->key)" identifier (argument_list "(pcVar13,pkVar17->key)" ( identifier , (field_expression "pkVar17->key" identifier -> field_identifier) )))) ;) (if_statement "if (-1 < iVar20) break;" if (parenthesized_expression "(-1 < iVar20)" ( (binary_expression "-1 < iVar20" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar22 = uVar19;" (assignment_expression "uVar22 = uVar19" identifier = identifier) ;) (if_statement "if (uVar19 <= uVar18) goto LAB_00065b08;" if (parenthesized_expression "(uVar19 <= uVar18)" ( (binary_expression "uVar19 <= uVar18" identifier <= identifier) )) (goto_statement "goto LAB_00065b08;" goto statement_identifier ;)) })) (if_statement "if (iVar20 == 0) goto LAB_00065d30;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00065d30;" goto statement_identifier ;)) (expression_statement "uVar18 = uVar19 + 1;" (assignment_expression "uVar18 = uVar19 + 1" identifier = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) })) }))) })) (goto_statement "goto LAB_00065b08;" goto statement_identifier ;) })) (expression_statement "strcpy(__dest,local_74->internal_name);" (call_expression "strcpy(__dest,local_74->internal_name)" identifier (argument_list "(__dest,local_74->internal_name)" ( identifier , (field_expression "local_74->internal_name" identifier -> field_identifier) ))) ;) (expression_statement "iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);" (assignment_expression "iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(linfo->hash,__dest,0,0,0)" identifier (argument_list "(linfo->hash,__dest,0,0,0)" ( (field_expression "linfo->hash" identifier -> field_identifier) , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')) {\nLAB_00065e00:\n            uVar22 = 1;\n            free(__dest);\n            goto LAB_00065c0f;\n          }" if (parenthesized_expression "((iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01'))" ( (binary_expression "(iVar20 != 0) && (*(char *)(iVar20 + 0xc) == '\x01')" (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)(iVar20 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar20 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar20 + 0xc)" * (cast_expression "(char *)(iVar20 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_00065e00:\n            uVar22 = 1;\n            free(__dest);\n            goto LAB_00065c0f;\n          }" { (labeled_statement "LAB_00065e00:\n            uVar22 = 1;" statement_identifier : (expression_statement "uVar22 = 1;" (assignment_expression "uVar22 = 1" identifier = number_literal) ;)) (expression_statement "free(__dest);" (call_expression "free(__dest)" identifier (argument_list "(__dest)" ( identifier ))) ;) (goto_statement "goto LAB_00065c0f;" goto statement_identifier ;) })) (expression_statement "sprintf(__dest,"%s%s","__imp_",local_74->internal_name);" (call_expression "sprintf(__dest,"%s%s","__imp_",local_74->internal_name)" identifier (argument_list "(__dest,"%s%s","__imp_",local_74->internal_name)" ( identifier , (string_literal ""%s%s"" " string_content ") , (string_literal ""__imp_"" " string_content ") , (field_expression "local_74->internal_name" identifier -> field_identifier) ))) ;) (expression_statement "iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0);" (assignment_expression "iVar20 = bfd_link_hash_lookup(linfo->hash,__dest,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(linfo->hash,__dest,0,0,0)" identifier (argument_list "(linfo->hash,__dest,0,0,0)" ( (field_expression "linfo->hash" identifier -> field_identifier) , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar20 != 0) {\n            bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\nLAB_00065d23:\n            uVar22 = 0;\n            goto LAB_00065b1c;\n          }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n            bVar23 = *(char *)(iVar20 + 0xc) == '\x01';\nLAB_00065d23:\n            uVar22 = 0;\n            goto LAB_00065b1c;\n          }" { (expression_statement "bVar23 = *(char *)(iVar20 + 0xc) == '\x01';" (assignment_expression "bVar23 = *(char *)(iVar20 + 0xc) == '\x01'" identifier = (binary_expression "*(char *)(iVar20 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar20 + 0xc)" * (cast_expression "(char *)(iVar20 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence '))) ;) (labeled_statement "LAB_00065d23:\n            uVar22 = 0;" statement_identifier : (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_00065b1c;" goto statement_identifier ;) })) (labeled_statement "LAB_00065dc0:\n          free(__dest);" statement_identifier : (expression_statement "free(__dest);" (call_expression "free(__dest)" identifier (argument_list "(__dest)" ( identifier ))) ;)) (goto_statement "goto LAB_00065b37;" goto statement_identifier ;) })) (goto_statement "goto LAB_00065b8f;" goto statement_identifier ;) }))) (labeled_statement "LAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (pkVar17 = udef_table, iVar20 != 0) {\n      iVar20 = iVar20 + -1;\n      pkVar2 = udef_table + iVar20;\n      udef_table = pkVar8;\n      undef_count = iVar20;\n      free(pkVar2->key);\n      pkVar8 = udef_table;\n      udef_table = pkVar17;\n    }" statement_identifier : (ERROR "}" }) (labeled_statement "joined_r0x00065bbb:\n    while (pkVar17 = udef_table, iVar20 != 0) {\n      iVar20 = iVar20 + -1;\n      pkVar2 = udef_table + iVar20;\n      udef_table = pkVar8;\n      undef_count = iVar20;\n      free(pkVar2->key);\n      pkVar8 = udef_table;\n      udef_table = pkVar17;\n    }" statement_identifier : (while_statement "while (pkVar17 = udef_table, iVar20 != 0) {\n      iVar20 = iVar20 + -1;\n      pkVar2 = udef_table + iVar20;\n      udef_table = pkVar8;\n      undef_count = iVar20;\n      free(pkVar2->key);\n      pkVar8 = udef_table;\n      udef_table = pkVar17;\n    }" while (parenthesized_expression "(pkVar17 = udef_table, iVar20 != 0)" ( (comma_expression "pkVar17 = udef_table, iVar20 != 0" (assignment_expression "pkVar17 = udef_table" identifier = identifier) , (binary_expression "iVar20 != 0" identifier != number_literal)) )) (compound_statement "{\n      iVar20 = iVar20 + -1;\n      pkVar2 = udef_table + iVar20;\n      udef_table = pkVar8;\n      undef_count = iVar20;\n      free(pkVar2->key);\n      pkVar8 = udef_table;\n      udef_table = pkVar17;\n    }" { (expression_statement "iVar20 = iVar20 + -1;" (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ;) (expression_statement "pkVar2 = udef_table + iVar20;" (assignment_expression "pkVar2 = udef_table + iVar20" identifier = (binary_expression "udef_table + iVar20" identifier + identifier)) ;) (expression_statement "udef_table = pkVar8;" (assignment_expression "udef_table = pkVar8" identifier = identifier) ;) (expression_statement "undef_count = iVar20;" (assignment_expression "undef_count = iVar20" identifier = identifier) ;) (expression_statement "free(pkVar2->key);" (call_expression "free(pkVar2->key)" identifier (argument_list "(pkVar2->key)" ( (field_expression "pkVar2->key" identifier -> field_identifier) ))) ;) (expression_statement "pkVar8 = udef_table;" (assignment_expression "pkVar8 = udef_table" identifier = identifier) ;) (expression_statement "udef_table = pkVar17;" (assignment_expression "udef_table = pkVar17" identifier = identifier) ;) })))) (expression_statement "udef_table = pkVar8;" (assignment_expression "udef_table = pkVar8" identifier = identifier) ;) (expression_statement "free(pkVar17);" (call_expression "free(pkVar17)" identifier (argument_list "(pkVar17)" ( identifier ))) ;) })) (return_statement "return;" return ;) (labeled_statement "LAB_00065d30:\n  iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);" statement_identifier : (expression_statement "iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0);" (assignment_expression "iVar20 = bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(linfo->hash,pkVar17->oname,0,0,0)" identifier (argument_list "(linfo->hash,pkVar17->oname,0,0,0)" ( (field_expression "linfo->hash" identifier -> field_identifier) , (field_expression "pkVar17->oname" identifier -> field_identifier) , number_literal , number_literal , number_literal )))) ;)) (if_statement "if (*(char *)(iVar20 + 0xc) == '\x01') {\nLAB_00065d58:\n    uVar22 = 1;\n    free(pcVar13);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    uVar22 = 1;\n    free(pcVar13);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar23) goto LAB_00065b37;\n  }" if (parenthesized_expression "(*(char *)(iVar20 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar20 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar20 + 0xc)" * (cast_expression "(char *)(iVar20 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00065d58:\n    uVar22 = 1;\n    free(pcVar13);\n    free(__dest);\n  }" { (labeled_statement "LAB_00065d58:\n    uVar22 = 1;" statement_identifier : (expression_statement "uVar22 = 1;" (assignment_expression "uVar22 = 1" identifier = number_literal) ;)) (expression_statement "free(pcVar13);" (call_expression "free(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) (expression_statement "free(__dest);" (call_expression "free(__dest)" identifier (argument_list "(__dest)" ( identifier ))) ;) }) (else_clause "else {\nLAB_00065b08:\n    uVar22 = 1;\n    free(pcVar13);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar23) goto LAB_00065b37;\n  }" else (compound_statement "{\nLAB_00065b08:\n    uVar22 = 1;\n    free(pcVar13);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar23) goto LAB_00065b37;\n  }" { (labeled_statement "LAB_00065b08:\n    uVar22 = 1;" statement_identifier : (expression_statement "uVar22 = 1;" (assignment_expression "uVar22 = 1" identifier = number_literal) ;)) (expression_statement "free(pcVar13);" (call_expression "free(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) (labeled_statement "LAB_00065b1c:\n    free(__dest);" statement_identifier : (expression_statement "free(__dest);" (call_expression "free(__dest)" identifier (argument_list "(__dest)" ( identifier ))) ;)) (if_statement "if (!bVar23) goto LAB_00065b37;" if (parenthesized_expression "(!bVar23)" ( (unary_expression "!bVar23" ! identifier) )) (goto_statement "goto LAB_00065b37;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00065c0f:\n  if (!bVar7) {\n    pbVar15 = make_head(output_bfd);\n    add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n  }" statement_identifier : (if_statement "if (!bVar7) {\n    pbVar15 = make_head(output_bfd);\n    add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n  }" if (parenthesized_expression "(!bVar7)" ( (unary_expression "!bVar7" ! identifier) )) (compound_statement "{\n    pbVar15 = make_head(output_bfd);\n    add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n  }" { (expression_statement "pbVar15 = make_head(output_bfd);" (assignment_expression "pbVar15 = make_head(output_bfd)" identifier = (call_expression "make_head(output_bfd)" identifier (argument_list "(output_bfd)" ( identifier )))) ;) (expression_statement "add_bfd_to_link(pbVar15,pbVar15->filename,linfo);" (call_expression "add_bfd_to_link(pbVar15,pbVar15->filename,linfo)" identifier (argument_list "(pbVar15,pbVar15->filename,linfo)" ( identifier , (field_expression "pbVar15->filename" identifier -> field_identifier) , identifier ))) ;) }))) (expression_statement "exp.internal_name = local_74->internal_name;" (assignment_expression "exp.internal_name = local_74->internal_name" (field_expression "exp.internal_name" identifier . field_identifier) = (field_expression "local_74->internal_name" identifier -> field_identifier)) ;) (expression_statement "exp.name = local_74->name;" (assignment_expression "exp.name = local_74->name" (field_expression "exp.name" identifier . field_identifier) = (field_expression "local_74->name" identifier -> field_identifier)) ;) (expression_statement "exp.its_name = local_74->its_name;" (assignment_expression "exp.its_name = local_74->its_name" (field_expression "exp.its_name" identifier . field_identifier) = (field_expression "local_74->its_name" identifier -> field_identifier)) ;) (expression_statement "exp.ordinal = local_74->ordinal;" (assignment_expression "exp.ordinal = local_74->ordinal" (field_expression "exp.ordinal" identifier . field_identifier) = (field_expression "local_74->ordinal" identifier -> field_identifier)) ;) (expression_statement "exp.hint = exp.ordinal;" (assignment_expression "exp.hint = exp.ordinal" (field_expression "exp.hint" identifier . field_identifier) = (field_expression "exp.ordinal" identifier . field_identifier)) ;) (if_statement "if (exp.ordinal < 0) {\n    exp.hint = 0;\n  }" if (parenthesized_expression "(exp.ordinal < 0)" ( (binary_expression "exp.ordinal < 0" (field_expression "exp.ordinal" identifier . field_identifier) < number_literal) )) (compound_statement "{\n    exp.hint = 0;\n  }" { (expression_statement "exp.hint = 0;" (assignment_expression "exp.hint = 0" (field_expression "exp.hint" identifier . field_identifier) = number_literal) ;) })) (expression_statement "exp.flag_noname = exp.name == (char *)0x0;" (assignment_expression "exp.flag_noname = exp.name == (char *)0x0" (field_expression "exp.flag_noname" identifier . field_identifier) = (binary_expression "exp.name == (char *)0x0" (field_expression "exp.name" identifier . field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "exp.flag_private = '\0';" (assignment_expression "exp.flag_private = '\0'" (field_expression "exp.flag_private" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "exp.flag_constant = '\0';" (assignment_expression "exp.flag_constant = '\0'" (field_expression "exp.flag_constant" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "exp.flag_data = (char)local_74->data;" (assignment_expression "exp.flag_data = (char)local_74->data" (field_expression "exp.flag_data" identifier . field_identifier) = (cast_expression "(char)local_74->data" ( (type_descriptor "char" primitive_type) ) (field_expression "local_74->data" identifier -> field_identifier))) ;) (expression_statement "pbVar15 = make_one(&exp,output_bfd,exp.flag_data == '\0' & uVar22);" (assignment_expression "pbVar15 = make_one(&exp,output_bfd,exp.flag_data == '\0' & uVar22)" identifier = (call_expression "make_one(&exp,output_bfd,exp.flag_data == '\0' & uVar22)" identifier (argument_list "(&exp,output_bfd,exp.flag_data == '\0' & uVar22)" ( (pointer_expression "&exp" & identifier) , identifier , (binary_expression "exp.flag_data == '\0' & uVar22" (binary_expression "exp.flag_data == '\0'" (field_expression "exp.flag_data" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) & identifier) )))) ;) (expression_statement "add_bfd_to_link(pbVar15,pbVar15->filename,linfo);" (call_expression "add_bfd_to_link(pbVar15,pbVar15->filename,linfo)" identifier (argument_list "(pbVar15,pbVar15->filename,linfo)" ( identifier , (field_expression "pbVar15->filename" identifier -> field_identifier) , identifier ))) ;) (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) (labeled_statement "LAB_00065b37:\n  local_70 = local_70 + 1;" statement_identifier : (expression_statement "local_70 = local_70 + 1;" (assignment_expression "local_70 = local_70 + 1" identifier = (binary_expression "local_70 + 1" identifier + number_literal)) ;)) (if_statement "if (pe_def_file->num_imports <= local_70) goto LAB_00065b67;" if (parenthesized_expression "(pe_def_file->num_imports <= local_70)" ( (binary_expression "pe_def_file->num_imports <= local_70" (field_expression "pe_def_file->num_imports" identifier -> field_identifier) <= identifier) )) (goto_statement "goto LAB_00065b67;" goto statement_identifier ;)) (expression_statement "local_74 = local_74 + 1;" (assignment_expression "local_74 = local_74 + 1" identifier = (binary_expression "local_74 + 1" identifier + number_literal)) ;) (expression_statement "pdVar6 = *local_64;" (assignment_expression "pdVar6 = *local_64" identifier = (pointer_expression "*local_64" * identifier)) ;) (expression_statement "local_64 = local_64 + 6;" (assignment_expression "local_64 = local_64 + 6" identifier = (binary_expression "local_64 + 6" identifier + number_literal)) ;) (if_statement "if (pdVar6 != local_68) goto LAB_00065b67;" if (parenthesized_expression "(pdVar6 != local_68)" ( (binary_expression "pdVar6 != local_68" identifier != identifier) )) (goto_statement "goto LAB_00065b67;" goto statement_identifier ;)) (goto_statement "goto LAB_000658a0;" goto statement_identifier ;) (labeled_statement "LAB_00065b67:\n  __ptr = (byte *)dll_symname;" statement_identifier : (expression_statement "__ptr = (byte *)dll_symname;" (assignment_expression "__ptr = (byte *)dll_symname" identifier = (cast_expression "(byte *)dll_symname" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if (bVar7) {\n    pbVar15 = make_tail(output_bfd);\n    add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n    __ptr = (byte *)dll_symname;\n  }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n    pbVar15 = make_tail(output_bfd);\n    add_bfd_to_link(pbVar15,pbVar15->filename,linfo);\n    __ptr = (byte *)dll_symname;\n  }" { (expression_statement "pbVar15 = make_tail(output_bfd);" (assignment_expression "pbVar15 = make_tail(output_bfd)" identifier = (call_expression "make_tail(output_bfd)" identifier (argument_list "(output_bfd)" ( identifier )))) ;) (expression_statement "add_bfd_to_link(pbVar15,pbVar15->filename,linfo);" (call_expression "add_bfd_to_link(pbVar15,pbVar15->filename,linfo)" identifier (argument_list "(pbVar15,pbVar15->filename,linfo)" ( identifier , (field_expression "pbVar15->filename" identifier -> field_identifier) , identifier ))) ;) (expression_statement "__ptr = (byte *)dll_symname;" (assignment_expression "__ptr = (byte *)dll_symname" identifier = (cast_expression "(byte *)dll_symname" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (labeled_statement "LAB_00065b8f:\n  free(__ptr);" statement_identifier : (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;)) (expression_statement "local_68 = local_68->next;" (assignment_expression "local_68 = local_68->next" identifier = (field_expression "local_68->next" identifier -> field_identifier)) ;) (expression_statement "pkVar8 = udef_table;" (assignment_expression "pkVar8 = udef_table" identifier = identifier) ;) (expression_statement "iVar20 = undef_count;" (assignment_expression "iVar20 = undef_count" identifier = identifier) ;) (if_statement "if (local_68 == (def_file_module *)0x0) goto joined_r0x00065bbb;" if (parenthesized_expression "(local_68 == (def_file_module *)0x0)" ( (binary_expression "local_68 == (def_file_module *)0x0" identifier == (cast_expression "(def_file_module *)0x0" ( (type_descriptor "def_file_module *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto joined_r0x00065bbb;" goto statement_identifier ;)) (goto_statement "goto LAB_000657a0;" goto statement_identifier ;) })) })))
(translation_unit "void FUN_000656c0(int param_1,int param_2)\n\n{\n  char *pcVar1;\n  byte bVar2;\n  char cVar3;\n  int iVar4;\n  bool bVar5;\n  void *pvVar6;\n  undefined *puVar7;\n  void *__ptr;\n  int *piVar8;\n  byte *__ptr_00;\n  char *__dest;\n  char *pcVar9;\n  int iVar10;\n  char *pcVar11;\n  char *pcVar12;\n  size_t sVar13;\n  byte *pbVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  size_t sVar17;\n  uint uVar18;\n  uint uVar19;\n  bool bVar20;\n  void *local_78;\n  undefined4 *local_74;\n  int local_70;\n  undefined4 *local_68;\n  undefined4 *local_64;\n  \n  FUN_00063a00(**(undefined4 **)(param_1 + 4));\n  if (DAT_001d1218 != 0) {\n    iVar4 = *(int *)(DAT_001d1218 + 0x3c);\n    pcVar1 = "";\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"");\n    DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3);\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"");\n    qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0);\n    puVar7 = PTR__sch_istable_001cefa0;\n    for (local_68 = *(undefined4 **)(DAT_001d1218 + 0x34); pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0; local_68 = (undefined4 *)*local_68) {\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }\n  return;\nLAB_00065d30:\n  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n  if (*(char *)(iVar10 + 0xc) == '\x01') {\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }\nLAB_00065c0f:\n  if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }\n  FUN_00062c20();\n  FUN_00062700();\n  bVar5 = true;\nLAB_00065b37:\n  local_70 = local_70 + 1;\n  if (*(int *)(DAT_001d1218 + 0x38) <= local_70) goto LAB_00065b67;\n  local_74 = local_74 + 6;\n  puVar15 = (undefined4 *)*local_64;\n  local_64 = local_64 + 6;\n  if (puVar15 != local_68) goto LAB_00065b67;\n  goto LAB_000658a0;\nLAB_00065b67:\n  __ptr_00 = DAT_001d1238;\n  if (bVar5) {\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }\nLAB_00065b8f:\n  free(__ptr_00);\n  local_68 = (undefined4 *)*local_68;\n  pvVar6 = DAT_001d1224;\n  sVar17 = DAT_001d1228;\n  if (local_68 == (undefined4 *)0x0) goto joined_r0x00065bbb;\n  goto LAB_000657a0;\n}\n\n" (function_definition "void FUN_000656c0(int param_1,int param_2)\n\n{\n  char *pcVar1;\n  byte bVar2;\n  char cVar3;\n  int iVar4;\n  bool bVar5;\n  void *pvVar6;\n  undefined *puVar7;\n  void *__ptr;\n  int *piVar8;\n  byte *__ptr_00;\n  char *__dest;\n  char *pcVar9;\n  int iVar10;\n  char *pcVar11;\n  char *pcVar12;\n  size_t sVar13;\n  byte *pbVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  size_t sVar17;\n  uint uVar18;\n  uint uVar19;\n  bool bVar20;\n  void *local_78;\n  undefined4 *local_74;\n  int local_70;\n  undefined4 *local_68;\n  undefined4 *local_64;\n  \n  FUN_00063a00(**(undefined4 **)(param_1 + 4));\n  if (DAT_001d1218 != 0) {\n    iVar4 = *(int *)(DAT_001d1218 + 0x3c);\n    pcVar1 = "";\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"");\n    DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3);\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"");\n    qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0);\n    puVar7 = PTR__sch_istable_001cefa0;\n    for (local_68 = *(undefined4 **)(DAT_001d1218 + 0x34); pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0; local_68 = (undefined4 *)*local_68) {\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }\n  return;\nLAB_00065d30:\n  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n  if (*(char *)(iVar10 + 0xc) == '\x01') {\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }\nLAB_00065c0f:\n  if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }\n  FUN_00062c20();\n  FUN_00062700();\n  bVar5 = true;\nLAB_00065b37:\n  local_70 = local_70 + 1;\n  if (*(int *)(DAT_001d1218 + 0x38) <= local_70) goto LAB_00065b67;\n  local_74 = local_74 + 6;\n  puVar15 = (undefined4 *)*local_64;\n  local_64 = local_64 + 6;\n  if (puVar15 != local_68) goto LAB_00065b67;\n  goto LAB_000658a0;\nLAB_00065b67:\n  __ptr_00 = DAT_001d1238;\n  if (bVar5) {\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }\nLAB_00065b8f:\n  free(__ptr_00);\n  local_68 = (undefined4 *)*local_68;\n  pvVar6 = DAT_001d1224;\n  sVar17 = DAT_001d1228;\n  if (local_68 == (undefined4 *)0x0) goto joined_r0x00065bbb;\n  goto LAB_000657a0;\n}" primitive_type (function_declarator "FUN_000656c0(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  byte bVar2;\n  char cVar3;\n  int iVar4;\n  bool bVar5;\n  void *pvVar6;\n  undefined *puVar7;\n  void *__ptr;\n  int *piVar8;\n  byte *__ptr_00;\n  char *__dest;\n  char *pcVar9;\n  int iVar10;\n  char *pcVar11;\n  char *pcVar12;\n  size_t sVar13;\n  byte *pbVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  size_t sVar17;\n  uint uVar18;\n  uint uVar19;\n  bool bVar20;\n  void *local_78;\n  undefined4 *local_74;\n  int local_70;\n  undefined4 *local_68;\n  undefined4 *local_64;\n  \n  FUN_00063a00(**(undefined4 **)(param_1 + 4));\n  if (DAT_001d1218 != 0) {\n    iVar4 = *(int *)(DAT_001d1218 + 0x3c);\n    pcVar1 = "";\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"");\n    DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3);\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"");\n    qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0);\n    puVar7 = PTR__sch_istable_001cefa0;\n    for (local_68 = *(undefined4 **)(DAT_001d1218 + 0x34); pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0; local_68 = (undefined4 *)*local_68) {\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }\n  return;\nLAB_00065d30:\n  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n  if (*(char *)(iVar10 + 0xc) == '\x01') {\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }\nLAB_00065c0f:\n  if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }\n  FUN_00062c20();\n  FUN_00062700();\n  bVar5 = true;\nLAB_00065b37:\n  local_70 = local_70 + 1;\n  if (*(int *)(DAT_001d1218 + 0x38) <= local_70) goto LAB_00065b67;\n  local_74 = local_74 + 6;\n  puVar15 = (undefined4 *)*local_64;\n  local_64 = local_64 + 6;\n  if (puVar15 != local_68) goto LAB_00065b67;\n  goto LAB_000658a0;\nLAB_00065b67:\n  __ptr_00 = DAT_001d1238;\n  if (bVar5) {\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }\nLAB_00065b8f:\n  free(__ptr_00);\n  local_68 = (undefined4 *)*local_68;\n  pvVar6 = DAT_001d1224;\n  sVar17 = DAT_001d1228;\n  if (local_68 == (undefined4 *)0x0) goto joined_r0x00065bbb;\n  goto LAB_000657a0;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "void *pvVar6;" primitive_type (pointer_declarator "*pvVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "byte *__ptr_00;" type_identifier (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "char *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "size_t sVar13;" primitive_type identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "size_t sVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "bool bVar20;" primitive_type identifier ;) (declaration "void *local_78;" primitive_type (pointer_declarator "*local_78" * identifier) ;) (declaration "undefined4 *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "undefined4 *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "undefined4 *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (expression_statement "FUN_00063a00(**(undefined4 **)(param_1 + 4));" (call_expression "FUN_00063a00(**(undefined4 **)(param_1 + 4))" identifier (argument_list "(**(undefined4 **)(param_1 + 4))" ( (pointer_expression "**(undefined4 **)(param_1 + 4)" * (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ))) ;) (if_statement "if (DAT_001d1218 != 0) {\n    iVar4 = *(int *)(DAT_001d1218 + 0x3c);\n    pcVar1 = "";\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"");\n    DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3);\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"");\n    qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0);\n    puVar7 = PTR__sch_istable_001cefa0;\n    for (local_68 = *(undefined4 **)(DAT_001d1218 + 0x34); pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0; local_68 = (undefined4 *)*local_68) {\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }\n  return;\nLAB_00065d30:\n  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n  if (*(char *)(iVar10 + 0xc) == '\x01') {\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }\nLAB_00065c0f:\n  if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }\n  FUN_00062c20();\n  FUN_00062700();\n  bVar5 = true;\nLAB_00065b37:\n  local_70 = local_70 + 1;\n  if (*(int *)(DAT_001d1218 + 0x38) <= local_70) goto LAB_00065b67;\n  local_74 = local_74 + 6;\n  puVar15 = (undefined4 *)*local_64;\n  local_64 = local_64 + 6;\n  if (puVar15 != local_68) goto LAB_00065b67;\n  goto LAB_000658a0;\nLAB_00065b67:\n  __ptr_00 = DAT_001d1238;\n  if (bVar5) {\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }\nLAB_00065b8f:\n  free(__ptr_00);\n  local_68 = (undefined4 *)*local_68;\n  pvVar6 = DAT_001d1224;\n  sVar17 = DAT_001d1228;\n  if (local_68 == (undefined4 *)0x0) goto joined_r0x00065bbb;\n  goto LAB_000657a0;\n}" if (parenthesized_expression "(DAT_001d1218 != 0)" ( (binary_expression "DAT_001d1218 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar4 = *(int *)(DAT_001d1218 + 0x3c);\n    pcVar1 = "";\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"");\n    DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3);\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"");\n    qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0);\n    puVar7 = PTR__sch_istable_001cefa0;\n    for (local_68 = *(undefined4 **)(DAT_001d1218 + 0x34); pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0; local_68 = (undefined4 *)*local_68) {\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }\n  return;\nLAB_00065d30:\n  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n  if (*(char *)(iVar10 + 0xc) == '\x01') {\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }\nLAB_00065c0f:\n  if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }\n  FUN_00062c20();\n  FUN_00062700();\n  bVar5 = true;\nLAB_00065b37:\n  local_70 = local_70 + 1;\n  if (*(int *)(DAT_001d1218 + 0x38) <= local_70) goto LAB_00065b67;\n  local_74 = local_74 + 6;\n  puVar15 = (undefined4 *)*local_64;\n  local_64 = local_64 + 6;\n  if (puVar15 != local_68) goto LAB_00065b67;\n  goto LAB_000658a0;\nLAB_00065b67:\n  __ptr_00 = DAT_001d1238;\n  if (bVar5) {\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }\nLAB_00065b8f:\n  free(__ptr_00);\n  local_68 = (undefined4 *)*local_68;\n  pvVar6 = DAT_001d1224;\n  sVar17 = DAT_001d1228;\n  if (local_68 == (undefined4 *)0x0) goto joined_r0x00065bbb;\n  goto LAB_000657a0;\n}" { (expression_statement "iVar4 = *(int *)(DAT_001d1218 + 0x3c);" (assignment_expression "iVar4 = *(int *)(DAT_001d1218 + 0x3c)" identifier = (pointer_expression "*(int *)(DAT_001d1218 + 0x3c)" * (cast_expression "(int *)(DAT_001d1218 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1218 + 0x3c)" ( (binary_expression "DAT_001d1218 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "pcVar1 = "";" (assignment_expression "pcVar1 = """ identifier = (string_literal """" " ")) ;) (expression_statement "DAT_001d1228 = 0;" (assignment_expression "DAT_001d1228 = 0" identifier = number_literal) ;) (expression_statement "bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"");" (call_expression "bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"")" identifier (argument_list "(DAT_001d1400,FUN_00062400,"")" ( identifier , identifier , (string_literal """" " ") ))) ;) (expression_statement "DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3);" (assignment_expression "DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3)" identifier = (cast_expression "(void *)xmalloc(DAT_001d1228 << 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(DAT_001d1228 << 3)" identifier (argument_list "(DAT_001d1228 << 3)" ( (binary_expression "DAT_001d1228 << 3" identifier << number_literal) ))))) ;) (expression_statement "DAT_001d1228 = 0;" (assignment_expression "DAT_001d1228 = 0" identifier = number_literal) ;) (expression_statement "bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"");" (call_expression "bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"")" identifier (argument_list "(DAT_001d1400,FUN_00062780,"")" ( identifier , identifier , (string_literal """" " ") ))) ;) (expression_statement "qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0);" (call_expression "qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0)" identifier (argument_list "(DAT_001d1224,DAT_001d1228,8,FUN_000616f0)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "puVar7 = PTR__sch_istable_001cefa0;" (assignment_expression "puVar7 = PTR__sch_istable_001cefa0" identifier = identifier) ;) (for_statement "for (local_68 = *(undefined4 **)(DAT_001d1218 + 0x34); pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0; local_68 = (undefined4 *)*local_68) {\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }" for ( (assignment_expression "local_68 = *(undefined4 **)(DAT_001d1218 + 0x34)" identifier = (pointer_expression "*(undefined4 **)(DAT_001d1218 + 0x34)" * (cast_expression "(undefined4 **)(DAT_001d1218 + 0x34)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_001d1218 + 0x34)" ( (binary_expression "DAT_001d1218 + 0x34" identifier + number_literal) ))))) ; (comma_expression "pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0" (assignment_expression "pvVar6 = DAT_001d1224" identifier = identifier) , (comma_expression "sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0" (assignment_expression "sVar17 = DAT_001d1228" identifier = identifier) , (binary_expression "local_68 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ; (assignment_expression "local_68 = (undefined4 *)*local_68" identifier = (cast_expression "(undefined4 *)*local_68" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_68" * identifier))) ) (compound_statement "{\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }" { (labeled_statement "LAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }" statement_identifier : (if_statement "if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }" if (parenthesized_expression "(0 < *(int *)(DAT_001d1218 + 0x38))" ( (binary_expression "0 < *(int *)(DAT_001d1218 + 0x38)" number_literal < (pointer_expression "*(int *)(DAT_001d1218 + 0x38)" * (cast_expression "(int *)(DAT_001d1218 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1218 + 0x38)" ( (binary_expression "DAT_001d1218 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }" { (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (if_statement "if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }" if (parenthesized_expression "(local_68 != *(undefined4 **)(iVar4 + 4))" ( (binary_expression "local_68 != *(undefined4 **)(iVar4 + 4)" identifier != (pointer_expression "*(undefined4 **)(iVar4 + 4)" * (cast_expression "(undefined4 **)(iVar4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }" { (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" identifier = number_literal) ;) (expression_statement "piVar8 = (int *)(iVar4 + 0x1c);" (assignment_expression "piVar8 = (int *)(iVar4 + 0x1c)" identifier = (cast_expression "(int *)(iVar4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) ;) (do_statement "do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);" do (compound_statement "{\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          }" { (expression_statement "local_70 = local_70 + 1;" (assignment_expression "local_70 = local_70 + 1" identifier = (binary_expression "local_70 + 1" identifier + number_literal)) ;) (if_statement "if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;" if (parenthesized_expression "(local_70 == *(int *)(DAT_001d1218 + 0x38))" ( (binary_expression "local_70 == *(int *)(DAT_001d1218 + 0x38)" identifier == (pointer_expression "*(int *)(DAT_001d1218 + 0x38)" * (cast_expression "(int *)(DAT_001d1218 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1218 + 0x38)" ( (binary_expression "DAT_001d1218 + 0x38" identifier + number_literal) ))))) )) (goto_statement "goto LAB_000657df;" goto statement_identifier ;)) (expression_statement "puVar15 = (undefined4 *)*piVar8;" (assignment_expression "puVar15 = (undefined4 *)*piVar8" identifier = (cast_expression "(undefined4 *)*piVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (expression_statement "piVar8 = piVar8 + 6;" (assignment_expression "piVar8 = piVar8 + 6" identifier = (binary_expression "piVar8 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar15 != local_68)" ( (binary_expression "puVar15 != local_68" identifier != identifier) )) ;) })) (expression_statement "DAT_001d123c = local_68 + 2;" (assignment_expression "DAT_001d123c = local_68 + 2" identifier = (binary_expression "local_68 + 2" identifier + number_literal)) ;) (expression_statement "__ptr_00 = (byte *)xstrdup(DAT_001d123c);" (assignment_expression "__ptr_00 = (byte *)xstrdup(DAT_001d123c)" identifier = (cast_expression "(byte *)xstrdup(DAT_001d123c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(DAT_001d123c)" identifier (argument_list "(DAT_001d123c)" ( identifier ))))) ;) (expression_statement "bVar2 = *__ptr_00;" (assignment_expression "bVar2 = *__ptr_00" identifier = (pointer_expression "*__ptr_00" * identifier)) ;) (expression_statement "pbVar14 = __ptr_00;" (assignment_expression "pbVar14 = __ptr_00" identifier = identifier) ;) (expression_statement "DAT_001d1238 = __ptr_00;" (assignment_expression "DAT_001d1238 = __ptr_00" identifier = identifier) ;) (while_statement "while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }" while (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }" { (if_statement "if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }" if (parenthesized_expression "((puVar7[(uint)bVar2 * 2] & 0x8c) == 0)" ( (binary_expression "(puVar7[(uint)bVar2 * 2] & 0x8c) == 0" (parenthesized_expression "(puVar7[(uint)bVar2 * 2] & 0x8c)" ( (binary_expression "puVar7[(uint)bVar2 * 2] & 0x8c" (subscript_expression "puVar7[(uint)bVar2 * 2]" identifier [ (binary_expression "(uint)bVar2 * 2" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) (compound_statement "{\n            *pbVar14 = 0x5f;\n          }" { (expression_statement "*pbVar14 = 0x5f;" (assignment_expression "*pbVar14 = 0x5f" (pointer_expression "*pbVar14" * identifier) = number_literal) ;) })) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "bVar2 = *pbVar14;" (assignment_expression "bVar2 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) })) (if_statement "if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }" if (parenthesized_expression "(local_70 < *(int *)(DAT_001d1218 + 0x38))" ( (binary_expression "local_70 < *(int *)(DAT_001d1218 + 0x38)" identifier < (pointer_expression "*(int *)(DAT_001d1218 + 0x38)" * (cast_expression "(int *)(DAT_001d1218 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1218 + 0x38)" ( (binary_expression "DAT_001d1218 + 0x38" identifier + number_literal) ))))) )) (compound_statement "{\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }" { (expression_statement "local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);" (assignment_expression "local_74 = (undefined4 *)(iVar4 + local_70 * 0x18)" identifier = (cast_expression "(undefined4 *)(iVar4 + local_70 * 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + local_70 * 0x18)" ( (binary_expression "iVar4 + local_70 * 0x18" identifier + (binary_expression "local_70 * 0x18" identifier * number_literal)) )))) ;) (if_statement "if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }" if (parenthesized_expression "(local_68 == (undefined4 *)local_74[1])" ( (binary_expression "local_68 == (undefined4 *)local_74[1]" identifier == (cast_expression "(undefined4 *)local_74[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_74[1]" identifier [ number_literal ]))) )) (compound_statement "{\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }" { (expression_statement "local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);" (assignment_expression "local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18)" identifier = (cast_expression "(undefined4 *)(iVar4 + 0x1c + local_70 * 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c + local_70 * 0x18)" ( (binary_expression "iVar4 + 0x1c + local_70 * 0x18" (binary_expression "iVar4 + 0x1c" identifier + number_literal) + (binary_expression "local_70 * 0x18" identifier * number_literal)) )))) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (labeled_statement "LAB_000658a0:\n            cVar3 = *(char *)*local_74;" statement_identifier : (expression_statement "cVar3 = *(char *)*local_74;" (assignment_expression "cVar3 = *(char *)*local_74" identifier = (pointer_expression "*(char *)*local_74" * (cast_expression "(char *)*local_74" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_74" * identifier)))) ;)) (expression_statement "sVar17 = strlen((char *)*local_74);" (assignment_expression "sVar17 = strlen((char *)*local_74)" identifier = (call_expression "strlen((char *)*local_74)" identifier (argument_list "((char *)*local_74)" ( (cast_expression "(char *)*local_74" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_74" * identifier)) )))) ;) (expression_statement "__dest = (char *)xmalloc(sVar17 + 8);" (assignment_expression "__dest = (char *)xmalloc(sVar17 + 8)" identifier = (cast_expression "(char *)xmalloc(sVar17 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar17 + 8)" identifier (argument_list "(sVar17 + 8)" ( (binary_expression "sVar17 + 8" identifier + number_literal) ))))) ;) (if_statement "if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }" if (parenthesized_expression "(cVar3 != '@')" ( (binary_expression "cVar3 != '@'" identifier != (char_literal "'@'" ' character ')) )) (compound_statement "{\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }" { (expression_statement "pcVar11 = (char *)*local_74;" (assignment_expression "pcVar11 = (char *)*local_74" identifier = (cast_expression "(char *)*local_74" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_74" * identifier))) ;) (expression_statement "pcVar9 = strchr(pcVar11,0x40);" (assignment_expression "pcVar9 = strchr(pcVar11,0x40)" identifier = (call_expression "strchr(pcVar11,0x40)" identifier (argument_list "(pcVar11,0x40)" ( identifier , number_literal )))) ;) (expression_statement "pcVar12 = "_";" (assignment_expression "pcVar12 = "_"" identifier = (string_literal ""_"" " string_content ")) ;) (if_statement "if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\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                pcVar12 = pcVar1;\n              }" { (expression_statement "pcVar12 = pcVar1;" (assignment_expression "pcVar12 = pcVar1" identifier = identifier) ;) })) (expression_statement "sprintf(__dest,"%s%s",pcVar12,pcVar11);" (call_expression "sprintf(__dest,"%s%s",pcVar12,pcVar11)" identifier (argument_list "(__dest,"%s%s",pcVar12,pcVar11)" ( identifier , (string_literal ""%s%s"" " string_content ") , identifier , identifier ))) ;) (expression_statement "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),__dest,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 )))) ;) (if_statement "if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }" if (parenthesized_expression "((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01'))" ( (binary_expression "(iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')" (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (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 "'\x01'" ' escape_sequence ')) ))) )) (compound_statement "{\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }" { (if_statement "if (pcVar9 != (char *)0x0) goto LAB_00065e00;" 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)) )) (goto_statement "goto LAB_00065e00;" goto statement_identifier ;)) (expression_statement "free(__dest);" (call_expression "free(__dest)" identifier (argument_list "(__dest)" ( identifier ))) ;) (goto_statement "goto LAB_00065c0f;" goto statement_identifier ;) })) (expression_statement "pcVar11 = "_";" (assignment_expression "pcVar11 = "_"" identifier = (string_literal ""_"" " string_content ")) ;) (if_statement "if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\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                pcVar11 = pcVar1;\n              }" { (expression_statement "pcVar11 = pcVar1;" (assignment_expression "pcVar11 = pcVar1" identifier = identifier) ;) })) (expression_statement "sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);" (call_expression "sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74)" identifier (argument_list "(__dest,"%s%s%s","__imp_",pcVar11,*local_74)" ( identifier , (string_literal ""%s%s%s"" " string_content ") , (string_literal ""__imp_"" " string_content ") , identifier , (pointer_expression "*local_74" * identifier) ))) ;) (expression_statement "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),__dest,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 )))) ;) (if_statement "if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }" { (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" identifier = false) ;) (if_statement "if (pcVar9 != (char *)0x0) goto LAB_00065dc0;" 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)) )) (goto_statement "goto LAB_00065dc0;" goto statement_identifier ;)) }) (else_clause "else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }" else (compound_statement "{\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }" { (expression_statement "bVar20 = *(char *)(iVar10 + 0xc) == '\x01';" (assignment_expression "bVar20 = *(char *)(iVar10 + 0xc) == '\x01'" identifier = (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (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 "'\x01'" ' escape_sequence '))) ;) (if_statement "if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;" if (parenthesized_expression "((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))" ( (binary_expression "(pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01')" (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)) )) || (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (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 "'\x01'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00065b1c;" goto statement_identifier ;)) }))) (expression_statement "pcVar11 = "_";" (assignment_expression "pcVar11 = "_"" identifier = (string_literal ""_"" " string_content ")) ;) (if_statement "if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\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                pcVar11 = pcVar1;\n              }" { (expression_statement "pcVar11 = pcVar1;" (assignment_expression "pcVar11 = pcVar1" identifier = identifier) ;) })) (expression_statement "sprintf(__dest,"%s%s",pcVar11,*local_74);" (call_expression "sprintf(__dest,"%s%s",pcVar11,*local_74)" identifier (argument_list "(__dest,"%s%s",pcVar11,*local_74)" ( identifier , (string_literal ""%s%s"" " string_content ") , identifier , (pointer_expression "*local_74" * identifier) ))) ;) (expression_statement "sVar17 = strlen(__dest);" (assignment_expression "sVar17 = strlen(__dest)" identifier = (call_expression "strlen(__dest)" identifier (argument_list "(__dest)" ( identifier )))) ;) (expression_statement "pcVar11 = (char *)xmalloc(sVar17 + 3);" (assignment_expression "pcVar11 = (char *)xmalloc(sVar17 + 3)" identifier = (cast_expression "(char *)xmalloc(sVar17 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar17 + 3)" identifier (argument_list "(sVar17 + 3)" ( (binary_expression "sVar17 + 3" identifier + number_literal) ))))) ;) (expression_statement "strcpy(pcVar11,__dest);" (call_expression "strcpy(pcVar11,__dest)" identifier (argument_list "(pcVar11,__dest)" ( identifier , identifier ))) ;) (expression_statement "pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);" (assignment_expression "pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40)" identifier = (call_expression "strchr(pcVar11 + (*pcVar11 == '@'),0x40)" identifier (argument_list "(pcVar11 + (*pcVar11 == '@'),0x40)" ( (binary_expression "pcVar11 + (*pcVar11 == '@')" identifier + (parenthesized_expression "(*pcVar11 == '@')" ( (binary_expression "*pcVar11 == '@'" (pointer_expression "*pcVar11" * identifier) == (char_literal "'@'" ' character ')) ))) , number_literal )))) ;) (if_statement "if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }" if (parenthesized_expression "(pcVar12 != (char *)0x0)" ( (binary_expression "pcVar12 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pcVar12[1] = '\0';\n              }" { (expression_statement "pcVar12[1] = '\0';" (assignment_expression "pcVar12[1] = '\0'" (subscript_expression "pcVar12[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "pvVar6 = DAT_001d1224;" (assignment_expression "pvVar6 = DAT_001d1224" identifier = identifier) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "sVar17 = DAT_001d1228;" (assignment_expression "sVar17 = DAT_001d1228" identifier = identifier) ;) (while_statement "while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }" while (parenthesized_expression "(uVar19 < sVar17)" ( (binary_expression "uVar19 < sVar17" identifier < identifier) )) (compound_statement "{\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }" { (while_statement "while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }" { (expression_statement "uVar16 = uVar19 + sVar17 >> 1;" (assignment_expression "uVar16 = uVar19 + sVar17 >> 1" identifier = (binary_expression "uVar19 + sVar17 >> 1" (binary_expression "uVar19 + sVar17" identifier + identifier) >> number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);" (assignment_expression "puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8)" identifier = (cast_expression "(undefined4 *)((int)pvVar6 + uVar16 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar6 + uVar16 * 8)" ( (binary_expression "(int)pvVar6 + uVar16 * 8" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * 8" identifier * number_literal)) )))) ;) (expression_statement "iVar10 = strcmp(pcVar11,(char *)*puVar15);" (assignment_expression "iVar10 = strcmp(pcVar11,(char *)*puVar15)" identifier = (call_expression "strcmp(pcVar11,(char *)*puVar15)" identifier (argument_list "(pcVar11,(char *)*puVar15)" ( identifier , (cast_expression "(char *)*puVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier)) )))) ;) (if_statement "if (-1 < iVar10) break;" if (parenthesized_expression "(-1 < iVar10)" ( (binary_expression "-1 < iVar10" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "sVar17 = uVar16;" (assignment_expression "sVar17 = uVar16" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar19) goto LAB_00065a75;" if (parenthesized_expression "(uVar16 <= uVar19)" ( (binary_expression "uVar16 <= uVar19" identifier <= identifier) )) (goto_statement "goto LAB_00065a75;" goto statement_identifier ;)) })) (if_statement "if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }" { (expression_statement "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),puVar15[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 "puVar15[1]" identifier [ number_literal ]) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;" if (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (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 "'\x01'" ' escape_sequence ')) )) (goto_statement "goto LAB_00065d58;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "uVar19 = uVar16 + 1;" (assignment_expression "uVar19 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) })) (labeled_statement "LAB_00065a75:\n              sVar17 = DAT_001d1228;" statement_identifier : (expression_statement "sVar17 = DAT_001d1228;" (assignment_expression "sVar17 = DAT_001d1228" identifier = identifier) ;)) (expression_statement "pvVar6 = DAT_001d1224;" (assignment_expression "pvVar6 = DAT_001d1224" identifier = identifier) ;) (expression_statement "cVar3 = *pcVar11;" (assignment_expression "cVar3 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (if_statement "if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }" if (parenthesized_expression "(cVar3 != '?')" ( (binary_expression "cVar3 != '?'" identifier != (char_literal "'?'" ' character ')) )) (compound_statement "{\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }" { (expression_statement "local_78 = DAT_001d1224;" (assignment_expression "local_78 = DAT_001d1224" identifier = identifier) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }" { (if_statement "if (cVar3 == '@') goto LAB_00065f40;" if (parenthesized_expression "(cVar3 == '@')" ( (binary_expression "cVar3 == '@'" identifier == (char_literal "'@'" ' character ')) )) (goto_statement "goto LAB_00065f40;" goto statement_identifier ;)) (expression_statement "sVar13 = strlen(pcVar11);" (assignment_expression "sVar13 = strlen(pcVar11)" identifier = (call_expression "strlen(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier )))) ;) (expression_statement "(pcVar11 + sVar13)[0] = '@';" (assignment_expression "(pcVar11 + sVar13)[0] = '@'" (subscript_expression "(pcVar11 + sVar13)[0]" (parenthesized_expression "(pcVar11 + sVar13)" ( (binary_expression "pcVar11 + sVar13" identifier + identifier) )) [ number_literal ]) = (char_literal "'@'" ' character ')) ;) (expression_statement "(pcVar11 + sVar13)[1] = '\0';" (assignment_expression "(pcVar11 + sVar13)[1] = '\0'" (subscript_expression "(pcVar11 + sVar13)[1]" (parenthesized_expression "(pcVar11 + sVar13)" ( (binary_expression "pcVar11 + sVar13" identifier + identifier) )) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (while_statement "while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }" while (parenthesized_expression "(uVar19 < sVar17)" ( (binary_expression "uVar19 < sVar17" identifier < identifier) )) (compound_statement "{\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }" { (while_statement "while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }" { (expression_statement "uVar16 = sVar17 + uVar19 >> 1;" (assignment_expression "uVar16 = sVar17 + uVar19 >> 1" identifier = (binary_expression "sVar17 + uVar19 >> 1" (binary_expression "sVar17 + uVar19" identifier + identifier) >> number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);" (assignment_expression "puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8)" identifier = (cast_expression "(undefined4 *)((int)pvVar6 + uVar16 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar6 + uVar16 * 8)" ( (binary_expression "(int)pvVar6 + uVar16 * 8" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * 8" identifier * number_literal)) )))) ;) (expression_statement "iVar10 = strcmp(pcVar11,(char *)*puVar15);" (assignment_expression "iVar10 = strcmp(pcVar11,(char *)*puVar15)" identifier = (call_expression "strcmp(pcVar11,(char *)*puVar15)" identifier (argument_list "(pcVar11,(char *)*puVar15)" ( identifier , (cast_expression "(char *)*puVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier)) )))) ;) (if_statement "if (-1 < iVar10) break;" if (parenthesized_expression "(-1 < iVar10)" ( (binary_expression "-1 < iVar10" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "sVar17 = uVar16;" (assignment_expression "sVar17 = uVar16" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar19) goto LAB_00065e95;" if (parenthesized_expression "(uVar16 <= uVar19)" ( (binary_expression "uVar16 <= uVar19" identifier <= identifier) )) (goto_statement "goto LAB_00065e95;" goto statement_identifier ;)) })) (if_statement "if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }" { (expression_statement "iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" identifier = (call_expression "bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),puVar15[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 "puVar15[1]" identifier [ number_literal ]) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;" if (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (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 "'\x01'" ' escape_sequence ')) )) (goto_statement "goto LAB_00065d58;" goto statement_identifier ;)) (expression_statement "cVar3 = *pcVar11;" (assignment_expression "cVar3 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;) (goto_statement "goto joined_r0x00066040;" goto statement_identifier ;) })) (expression_statement "uVar19 = uVar16 + 1;" (assignment_expression "uVar19 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) })) (labeled_statement "LAB_00065e95:\n                  cVar3 = *pcVar11;" statement_identifier : (expression_statement "cVar3 = *pcVar11;" (assignment_expression "cVar3 = *pcVar11" identifier = (pointer_expression "*pcVar11" * identifier)) ;)) (labeled_statement "joined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }" statement_identifier : (if_statement "if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }" if (parenthesized_expression "((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0))" ( (binary_expression "(cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)" (parenthesized_expression "(cVar3 == '_')" ( (binary_expression "cVar3 == '_'" identifier == (char_literal "'_'" ' character ')) )) && (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                    *pcVar11 = '@';\n                  }" { (expression_statement "*pcVar11 = '@';" (assignment_expression "*pcVar11 = '@'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'@'" ' character ')) ;) }) (else_clause "else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }" else (compound_statement "{\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }" { (expression_statement "memmove(pcVar11 + 1,pcVar11,sVar13 + 2);" (call_expression "memmove(pcVar11 + 1,pcVar11,sVar13 + 2)" identifier (argument_list "(pcVar11 + 1,pcVar11,sVar13 + 2)" ( (binary_expression "pcVar11 + 1" identifier + number_literal) , identifier , (binary_expression "sVar13 + 2" identifier + number_literal) ))) ;) (expression_statement "*pcVar11 = '@';" (assignment_expression "*pcVar11 = '@'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'@'" ' character ')) ;) })))) (expression_statement "pvVar6 = DAT_001d1224;" (assignment_expression "pvVar6 = DAT_001d1224" identifier = identifier) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "sVar17 = DAT_001d1228;" (assignment_expression "sVar17 = DAT_001d1228" identifier = identifier) ;) (while_statement "while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }" while (parenthesized_expression "(uVar19 < sVar17)" ( (binary_expression "uVar19 < sVar17" identifier < identifier) )) (compound_statement "{\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }" { (while_statement "while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }" { (expression_statement "uVar16 = sVar17 + uVar19 >> 1;" (assignment_expression "uVar16 = sVar17 + uVar19 >> 1" identifier = (binary_expression "sVar17 + uVar19 >> 1" (binary_expression "sVar17 + uVar19" identifier + identifier) >> number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);" (assignment_expression "puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8)" identifier = (cast_expression "(undefined4 *)((int)pvVar6 + uVar16 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar6 + uVar16 * 8)" ( (binary_expression "(int)pvVar6 + uVar16 * 8" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * 8" identifier * number_literal)) )))) ;) (expression_statement "iVar10 = strcmp(pcVar11,(char *)*puVar15);" (assignment_expression "iVar10 = strcmp(pcVar11,(char *)*puVar15)" identifier = (call_expression "strcmp(pcVar11,(char *)*puVar15)" identifier (argument_list "(pcVar11,(char *)*puVar15)" ( identifier , (cast_expression "(char *)*puVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier)) )))) ;) (if_statement "if (-1 < iVar10) break;" if (parenthesized_expression "(-1 < iVar10)" ( (binary_expression "-1 < iVar10" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "sVar17 = uVar16;" (assignment_expression "sVar17 = uVar16" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar19) goto LAB_00065b08;" if (parenthesized_expression "(uVar16 <= uVar19)" ( (binary_expression "uVar16 <= uVar19" identifier <= identifier) )) (goto_statement "goto LAB_00065b08;" goto statement_identifier ;)) })) (if_statement "if (iVar10 == 0) goto LAB_00065d30;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00065d30;" goto statement_identifier ;)) (expression_statement "uVar19 = uVar16 + 1;" (assignment_expression "uVar19 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) })) }) (else_clause "else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }" else (compound_statement "{\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }" { (if_statement "if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }" if (parenthesized_expression "(cVar3 == '@')" ( (binary_expression "cVar3 == '@'" identifier == (char_literal "'@'" ' character ')) )) (compound_statement "{\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }" { (labeled_statement "LAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }" statement_identifier : (if_statement "if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\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                      strcpy(pcVar11,pcVar11 + 1);\n                    }" { (expression_statement "strcpy(pcVar11,pcVar11 + 1);" (call_expression "strcpy(pcVar11,pcVar11 + 1)" identifier (argument_list "(pcVar11,pcVar11 + 1)" ( identifier , (binary_expression "pcVar11 + 1" identifier + number_literal) ))) ;) }) (else_clause "else {\n                      *pcVar11 = '_';\n                    }" else (compound_statement "{\n                      *pcVar11 = '_';\n                    }" { (expression_statement "*pcVar11 = '_';" (assignment_expression "*pcVar11 = '_'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'_'" ' character ')) ;) })))) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = sVar17;" (assignment_expression "uVar16 = sVar17" identifier = identifier) ;) (while_statement "while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }" while (parenthesized_expression "(uVar19 < uVar16)" ( (binary_expression "uVar19 < uVar16" identifier < identifier) )) (compound_statement "{\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }" { (while_statement "while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }" { (expression_statement "uVar18 = uVar16 + uVar19 >> 1;" (assignment_expression "uVar18 = uVar16 + uVar19 >> 1" identifier = (binary_expression "uVar16 + uVar19 >> 1" (binary_expression "uVar16 + uVar19" identifier + identifier) >> number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);" (assignment_expression "puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8)" identifier = (cast_expression "(undefined4 *)((int)pvVar6 + uVar18 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar6 + uVar18 * 8)" ( (binary_expression "(int)pvVar6 + uVar18 * 8" (cast_expression "(int)pvVar6" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar18 * 8" identifier * number_literal)) )))) ;) (expression_statement "iVar10 = strcmp(pcVar11,(char *)*puVar15);" (assignment_expression "iVar10 = strcmp(pcVar11,(char *)*puVar15)" identifier = (call_expression "strcmp(pcVar11,(char *)*puVar15)" identifier (argument_list "(pcVar11,(char *)*puVar15)" ( identifier , (cast_expression "(char *)*puVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier)) )))) ;) (if_statement "if (-1 < iVar10) break;" if (parenthesized_expression "(-1 < iVar10)" ( (binary_expression "-1 < iVar10" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar16 = uVar18;" (assignment_expression "uVar16 = uVar18" identifier = identifier) ;) (if_statement "if (uVar18 <= uVar19) goto LAB_00065fad;" if (parenthesized_expression "(uVar18 <= uVar19)" ( (binary_expression "uVar18 <= uVar19" identifier <= identifier) )) (goto_statement "goto LAB_00065fad;" goto statement_identifier ;)) })) (if_statement "if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }" { (expression_statement "iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" identifier = (call_expression "bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),puVar15[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 "puVar15[1]" identifier [ number_literal ]) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;" if (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (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 "'\x01'" ' escape_sequence ')) )) (goto_statement "goto LAB_00065d58;" goto statement_identifier ;)) (expression_statement "local_78 = DAT_001d1224;" (assignment_expression "local_78 = DAT_001d1224" identifier = identifier) ;) (expression_statement "sVar17 = DAT_001d1228;" (assignment_expression "sVar17 = DAT_001d1228" identifier = identifier) ;) (break_statement "break;" break ;) })) (expression_statement "uVar19 = uVar18 + 1;" (assignment_expression "uVar19 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) })) (labeled_statement "LAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;" statement_identifier : (if_statement "if (pcVar12 != (char *)0x0) goto LAB_00065aa8;" if (parenthesized_expression "(pcVar12 != (char *)0x0)" ( (binary_expression "pcVar12 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00065aa8;" goto statement_identifier ;))) }) (else_clause "else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }" else (compound_statement "{\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }" { (labeled_statement "LAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);" statement_identifier : (expression_statement "pcVar12 = strchr(pcVar11,0x40);" (assignment_expression "pcVar12 = strchr(pcVar11,0x40)" identifier = (call_expression "strchr(pcVar11,0x40)" identifier (argument_list "(pcVar11,0x40)" ( identifier , number_literal )))) ;)) (expression_statement "*pcVar12 = '\0';" (assignment_expression "*pcVar12 = '\0'" (pointer_expression "*pcVar12" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (while_statement "while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }" while (parenthesized_expression "(uVar19 < sVar17)" ( (binary_expression "uVar19 < sVar17" identifier < identifier) )) (compound_statement "{\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }" { (while_statement "while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }" { (expression_statement "uVar16 = sVar17 + uVar19 >> 1;" (assignment_expression "uVar16 = sVar17 + uVar19 >> 1" identifier = (binary_expression "sVar17 + uVar19 >> 1" (binary_expression "sVar17 + uVar19" identifier + identifier) >> number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);" (assignment_expression "puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8)" identifier = (cast_expression "(undefined4 *)((int)local_78 + uVar16 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_78 + uVar16 * 8)" ( (binary_expression "(int)local_78 + uVar16 * 8" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * 8" identifier * number_literal)) )))) ;) (expression_statement "iVar10 = strcmp(pcVar11,(char *)*puVar15);" (assignment_expression "iVar10 = strcmp(pcVar11,(char *)*puVar15)" identifier = (call_expression "strcmp(pcVar11,(char *)*puVar15)" identifier (argument_list "(pcVar11,(char *)*puVar15)" ( identifier , (cast_expression "(char *)*puVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier)) )))) ;) (if_statement "if (-1 < iVar10) break;" if (parenthesized_expression "(-1 < iVar10)" ( (binary_expression "-1 < iVar10" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "sVar17 = uVar16;" (assignment_expression "sVar17 = uVar16" identifier = identifier) ;) (if_statement "if (uVar16 <= uVar19) goto LAB_00065b08;" if (parenthesized_expression "(uVar16 <= uVar19)" ( (binary_expression "uVar16 <= uVar19" identifier <= identifier) )) (goto_statement "goto LAB_00065b08;" goto statement_identifier ;)) })) (if_statement "if (iVar10 == 0) goto LAB_00065d30;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00065d30;" goto statement_identifier ;)) (expression_statement "uVar19 = uVar16 + 1;" (assignment_expression "uVar19 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) })) }))) })) (goto_statement "goto LAB_00065b08;" goto statement_identifier ;) })) (expression_statement "strcpy(__dest,(char *)*local_74);" (call_expression "strcpy(__dest,(char *)*local_74)" identifier (argument_list "(__dest,(char *)*local_74)" ( identifier , (cast_expression "(char *)*local_74" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_74" * identifier)) ))) ;) (expression_statement "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),__dest,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 )))) ;) (if_statement "if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }" if (parenthesized_expression "((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01'))" ( (binary_expression "(iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')" (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (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 "'\x01'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }" { (labeled_statement "LAB_00065e00:\n              free(__dest);" statement_identifier : (expression_statement "free(__dest);" (call_expression "free(__dest)" identifier (argument_list "(__dest)" ( identifier ))) ;)) (goto_statement "goto LAB_00065c0f;" goto statement_identifier ;) })) (expression_statement "sprintf(__dest,"%s%s","__imp_",*local_74);" (call_expression "sprintf(__dest,"%s%s","__imp_",*local_74)" identifier (argument_list "(__dest,"%s%s","__imp_",*local_74)" ( identifier , (string_literal ""%s%s"" " string_content ") , (string_literal ""__imp_"" " string_content ") , (pointer_expression "*local_74" * identifier) ))) ;) (expression_statement "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),__dest,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 )))) ;) (if_statement "if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }" { (expression_statement "bVar20 = *(char *)(iVar10 + 0xc) == '\x01';" (assignment_expression "bVar20 = *(char *)(iVar10 + 0xc) == '\x01'" identifier = (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (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 "'\x01'" ' escape_sequence '))) ;) (goto_statement "goto LAB_00065b1c;" goto statement_identifier ;) })) (labeled_statement "LAB_00065dc0:\n            free(__dest);" statement_identifier : (expression_statement "free(__dest);" (call_expression "free(__dest)" identifier (argument_list "(__dest)" ( identifier ))) ;)) (goto_statement "goto LAB_00065b37;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_00065b8f;" goto statement_identifier ;) }))) (labeled_statement "LAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }" statement_identifier : (ERROR "}" }) (labeled_statement "joined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }" statement_identifier : (while_statement "while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }" while (parenthesized_expression "(__ptr = DAT_001d1224, sVar17 != 0)" ( (comma_expression "__ptr = DAT_001d1224, sVar17 != 0" (assignment_expression "__ptr = DAT_001d1224" identifier = identifier) , (binary_expression "sVar17 != 0" identifier != number_literal)) )) (compound_statement "{\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }" { (expression_statement "sVar17 = sVar17 - 1;" (assignment_expression "sVar17 = sVar17 - 1" identifier = (binary_expression "sVar17 - 1" identifier - number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);" (assignment_expression "puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8)" identifier = (cast_expression "(undefined4 *)((int)DAT_001d1224 + sVar17 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)DAT_001d1224 + sVar17 * 8)" ( (binary_expression "(int)DAT_001d1224 + sVar17 * 8" (cast_expression "(int)DAT_001d1224" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "sVar17 * 8" identifier * number_literal)) )))) ;) (expression_statement "DAT_001d1224 = pvVar6;" (assignment_expression "DAT_001d1224 = pvVar6" identifier = identifier) ;) (expression_statement "DAT_001d1228 = sVar17;" (assignment_expression "DAT_001d1228 = sVar17" identifier = identifier) ;) (expression_statement "free((void *)*puVar15);" (call_expression "free((void *)*puVar15)" identifier (argument_list "((void *)*puVar15)" ( (cast_expression "(void *)*puVar15" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier)) ))) ;) (expression_statement "pvVar6 = DAT_001d1224;" (assignment_expression "pvVar6 = DAT_001d1224" identifier = identifier) ;) (expression_statement "DAT_001d1224 = __ptr;" (assignment_expression "DAT_001d1224 = __ptr" identifier = identifier) ;) })))) (expression_statement "DAT_001d1224 = pvVar6;" (assignment_expression "DAT_001d1224 = pvVar6" identifier = identifier) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) })) (return_statement "return;" return ;) (labeled_statement "LAB_00065d30:\n  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);" statement_identifier : (expression_statement "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" identifier (argument_list "(*(undefined4 *)(param_2 + 0x20),puVar15[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 "puVar15[1]" identifier [ number_literal ]) , number_literal , number_literal , number_literal )))) ;)) (if_statement "if (*(char *)(iVar10 + 0xc) == '\x01') {\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }" if (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (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 "'\x01'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }" { (labeled_statement "LAB_00065d58:\n    free(pcVar11);" statement_identifier : (expression_statement "free(pcVar11);" (call_expression "free(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;)) (expression_statement "free(__dest);" (call_expression "free(__dest)" identifier (argument_list "(__dest)" ( identifier ))) ;) }) (else_clause "else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }" else (compound_statement "{\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }" { (labeled_statement "LAB_00065b08:\n    free(pcVar11);" statement_identifier : (expression_statement "free(pcVar11);" (call_expression "free(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;)) (labeled_statement "LAB_00065b1c:\n    free(__dest);" statement_identifier : (expression_statement "free(__dest);" (call_expression "free(__dest)" identifier (argument_list "(__dest)" ( identifier ))) ;)) (if_statement "if (!bVar20) goto LAB_00065b37;" if (parenthesized_expression "(!bVar20)" ( (unary_expression "!bVar20" ! identifier) )) (goto_statement "goto LAB_00065b37;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00065c0f:\n  if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }" statement_identifier : (if_statement "if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }" if (parenthesized_expression "(!bVar5)" ( (unary_expression "!bVar5" ! identifier) )) (compound_statement "{\n    FUN_00063470();\n    FUN_00062700();\n  }" { (expression_statement "FUN_00063470();" (call_expression "FUN_00063470()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00062700();" (call_expression "FUN_00062700()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "FUN_00062c20();" (call_expression "FUN_00062c20()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00062700();" (call_expression "FUN_00062700()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) (labeled_statement "LAB_00065b37:\n  local_70 = local_70 + 1;" statement_identifier : (expression_statement "local_70 = local_70 + 1;" (assignment_expression "local_70 = local_70 + 1" identifier = (binary_expression "local_70 + 1" identifier + number_literal)) ;)) (if_statement "if (*(int *)(DAT_001d1218 + 0x38) <= local_70) goto LAB_00065b67;" if (parenthesized_expression "(*(int *)(DAT_001d1218 + 0x38) <= local_70)" ( (binary_expression "*(int *)(DAT_001d1218 + 0x38) <= local_70" (pointer_expression "*(int *)(DAT_001d1218 + 0x38)" * (cast_expression "(int *)(DAT_001d1218 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1218 + 0x38)" ( (binary_expression "DAT_001d1218 + 0x38" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_00065b67;" goto statement_identifier ;)) (expression_statement "local_74 = local_74 + 6;" (assignment_expression "local_74 = local_74 + 6" identifier = (binary_expression "local_74 + 6" identifier + number_literal)) ;) (expression_statement "puVar15 = (undefined4 *)*local_64;" (assignment_expression "puVar15 = (undefined4 *)*local_64" identifier = (cast_expression "(undefined4 *)*local_64" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_64" * identifier))) ;) (expression_statement "local_64 = local_64 + 6;" (assignment_expression "local_64 = local_64 + 6" identifier = (binary_expression "local_64 + 6" identifier + number_literal)) ;) (if_statement "if (puVar15 != local_68) goto LAB_00065b67;" if (parenthesized_expression "(puVar15 != local_68)" ( (binary_expression "puVar15 != local_68" identifier != identifier) )) (goto_statement "goto LAB_00065b67;" goto statement_identifier ;)) (goto_statement "goto LAB_000658a0;" goto statement_identifier ;) (labeled_statement "LAB_00065b67:\n  __ptr_00 = DAT_001d1238;" statement_identifier : (expression_statement "__ptr_00 = DAT_001d1238;" (assignment_expression "__ptr_00 = DAT_001d1238" identifier = identifier) ;)) (if_statement "if (bVar5) {\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }" { (expression_statement "FUN_000637c0();" (call_expression "FUN_000637c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00062700();" (call_expression "FUN_00062700()" identifier (argument_list "()" ( ))) ;) (expression_statement "__ptr_00 = DAT_001d1238;" (assignment_expression "__ptr_00 = DAT_001d1238" identifier = identifier) ;) })) (labeled_statement "LAB_00065b8f:\n  free(__ptr_00);" statement_identifier : (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;)) (expression_statement "local_68 = (undefined4 *)*local_68;" (assignment_expression "local_68 = (undefined4 *)*local_68" identifier = (cast_expression "(undefined4 *)*local_68" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_68" * identifier))) ;) (expression_statement "pvVar6 = DAT_001d1224;" (assignment_expression "pvVar6 = DAT_001d1224" identifier = identifier) ;) (expression_statement "sVar17 = DAT_001d1228;" (assignment_expression "sVar17 = DAT_001d1228" identifier = identifier) ;) (if_statement "if (local_68 == (undefined4 *)0x0) goto joined_r0x00065bbb;" if (parenthesized_expression "(local_68 == (undefined4 *)0x0)" ( (binary_expression "local_68 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto joined_r0x00065bbb;" goto statement_identifier ;)) (goto_statement "goto LAB_000657a0;" goto statement_identifier ;) })) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) (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 = (string_literal " ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " ") ))) ;) (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 = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (string_literal " ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)))) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression 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 { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;)) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (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 , LIT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (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 = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , 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 )))) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (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 = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") , IDENT , (pointer_expression * 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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence '))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (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 ;)) }))) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (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 = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) ))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + 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 IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 (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 ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) [ LIT ]) = (char_literal ' character ')) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + 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 IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 (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 ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) })))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + 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 IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) })))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + 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 IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 (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 ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + 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 IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }))) })) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * 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 )))) ;) (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 { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content ") , (pointer_expression * 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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence '))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (goto_statement goto statement_identifier ;) })) })) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (ERROR }) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT)) )) (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 IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (return_statement return ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (subscript_expression IDENT [ LIT ]) , LIT , LIT , 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 { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) })))
(function_definition "void FUN_000656c0(int param_1,int param_2)\n\n{\n  char *pcVar1;\n  byte bVar2;\n  char cVar3;\n  int iVar4;\n  bool bVar5;\n  void *pvVar6;\n  undefined *puVar7;\n  void *__ptr;\n  int *piVar8;\n  byte *__ptr_00;\n  char *__dest;\n  char *pcVar9;\n  int iVar10;\n  char *pcVar11;\n  char *pcVar12;\n  size_t sVar13;\n  byte *pbVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  size_t sVar17;\n  uint uVar18;\n  uint uVar19;\n  bool bVar20;\n  void *local_78;\n  undefined4 *local_74;\n  int local_70;\n  undefined4 *local_68;\n  undefined4 *local_64;\n  \n  FUN_00063a00(**(undefined4 **)(param_1 + 4));\n  if (DAT_001d1218 != 0) {\n    iVar4 = *(int *)(DAT_001d1218 + 0x3c);\n    pcVar1 = "";\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"");\n    DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3);\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"");\n    qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0);\n    puVar7 = PTR__sch_istable_001cefa0;\n    for (local_68 = *(undefined4 **)(DAT_001d1218 + 0x34); pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0; local_68 = (undefined4 *)*local_68) {\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }\n  return;\nLAB_00065d30:\n  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n  if (*(char *)(iVar10 + 0xc) == '\x01') {\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }\nLAB_00065c0f:\n  if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }\n  FUN_00062c20();\n  FUN_00062700();\n  bVar5 = true;\nLAB_00065b37:\n  local_70 = local_70 + 1;\n  if (*(int *)(DAT_001d1218 + 0x38) <= local_70) goto LAB_00065b67;\n  local_74 = local_74 + 6;\n  puVar15 = (undefined4 *)*local_64;\n  local_64 = local_64 + 6;\n  if (puVar15 != local_68) goto LAB_00065b67;\n  goto LAB_000658a0;\nLAB_00065b67:\n  __ptr_00 = DAT_001d1238;\n  if (bVar5) {\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }\nLAB_00065b8f:\n  free(__ptr_00);\n  local_68 = (undefined4 *)*local_68;\n  pvVar6 = DAT_001d1224;\n  sVar17 = DAT_001d1228;\n  if (local_68 == (undefined4 *)0x0) goto joined_r0x00065bbb;\n  goto LAB_000657a0;\n}" (primitive_type "void") (function_declarator "FUN_000656c0(int param_1,int param_2)" (identifier "FUN_000656c0") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  char *pcVar1;\n  byte bVar2;\n  char cVar3;\n  int iVar4;\n  bool bVar5;\n  void *pvVar6;\n  undefined *puVar7;\n  void *__ptr;\n  int *piVar8;\n  byte *__ptr_00;\n  char *__dest;\n  char *pcVar9;\n  int iVar10;\n  char *pcVar11;\n  char *pcVar12;\n  size_t sVar13;\n  byte *pbVar14;\n  undefined4 *puVar15;\n  uint uVar16;\n  size_t sVar17;\n  uint uVar18;\n  uint uVar19;\n  bool bVar20;\n  void *local_78;\n  undefined4 *local_74;\n  int local_70;\n  undefined4 *local_68;\n  undefined4 *local_64;\n  \n  FUN_00063a00(**(undefined4 **)(param_1 + 4));\n  if (DAT_001d1218 != 0) {\n    iVar4 = *(int *)(DAT_001d1218 + 0x3c);\n    pcVar1 = "";\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"");\n    DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3);\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"");\n    qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0);\n    puVar7 = PTR__sch_istable_001cefa0;\n    for (local_68 = *(undefined4 **)(DAT_001d1218 + 0x34); pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0; local_68 = (undefined4 *)*local_68) {\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }\n  return;\nLAB_00065d30:\n  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n  if (*(char *)(iVar10 + 0xc) == '\x01') {\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }\nLAB_00065c0f:\n  if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }\n  FUN_00062c20();\n  FUN_00062700();\n  bVar5 = true;\nLAB_00065b37:\n  local_70 = local_70 + 1;\n  if (*(int *)(DAT_001d1218 + 0x38) <= local_70) goto LAB_00065b67;\n  local_74 = local_74 + 6;\n  puVar15 = (undefined4 *)*local_64;\n  local_64 = local_64 + 6;\n  if (puVar15 != local_68) goto LAB_00065b67;\n  goto LAB_000658a0;\nLAB_00065b67:\n  __ptr_00 = DAT_001d1238;\n  if (bVar5) {\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }\nLAB_00065b8f:\n  free(__ptr_00);\n  local_68 = (undefined4 *)*local_68;\n  pvVar6 = DAT_001d1224;\n  sVar17 = DAT_001d1228;\n  if (local_68 == (undefined4 *)0x0) goto joined_r0x00065bbb;\n  goto LAB_000657a0;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "bool bVar5;" (primitive_type "bool") (identifier "bVar5") (; ";")) (declaration "void *pvVar6;" (primitive_type "void") (pointer_declarator "*pvVar6" (* "*") (identifier "pvVar6")) (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "byte *__ptr_00;" (type_identifier "byte") (pointer_declarator "*__ptr_00" (* "*") (identifier "__ptr_00")) (; ";")) (declaration "char *__dest;" (primitive_type "char") (pointer_declarator "*__dest" (* "*") (identifier "__dest")) (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "char *pcVar11;" (primitive_type "char") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "char *pcVar12;" (primitive_type "char") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "size_t sVar13;" (primitive_type "size_t") (identifier "sVar13") (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "undefined4 *puVar15;" (type_identifier "undefined4") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "size_t sVar17;" (primitive_type "size_t") (identifier "sVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "bool bVar20;" (primitive_type "bool") (identifier "bVar20") (; ";")) (declaration "void *local_78;" (primitive_type "void") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "undefined4 *local_74;" (type_identifier "undefined4") (pointer_declarator "*local_74" (* "*") (identifier "local_74")) (; ";")) (declaration "int local_70;" (primitive_type "int") (identifier "local_70") (; ";")) (declaration "undefined4 *local_68;" (type_identifier "undefined4") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "undefined4 *local_64;" (type_identifier "undefined4") (pointer_declarator "*local_64" (* "*") (identifier "local_64")) (; ";")) (expression_statement "FUN_00063a00(**(undefined4 **)(param_1 + 4));" (call_expression "FUN_00063a00(**(undefined4 **)(param_1 + 4))" (identifier "FUN_00063a00") (argument_list "(**(undefined4 **)(param_1 + 4))" (( "(") (pointer_expression "**(undefined4 **)(param_1 + 4)" (* "*") (pointer_expression "*(undefined4 **)(param_1 + 4)" (* "*") (cast_expression "(undefined4 **)(param_1 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) () ")"))) (; ";")) (if_statement "if (DAT_001d1218 != 0) {\n    iVar4 = *(int *)(DAT_001d1218 + 0x3c);\n    pcVar1 = "";\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"");\n    DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3);\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"");\n    qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0);\n    puVar7 = PTR__sch_istable_001cefa0;\n    for (local_68 = *(undefined4 **)(DAT_001d1218 + 0x34); pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0; local_68 = (undefined4 *)*local_68) {\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }\n  return;\nLAB_00065d30:\n  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n  if (*(char *)(iVar10 + 0xc) == '\x01') {\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }\nLAB_00065c0f:\n  if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }\n  FUN_00062c20();\n  FUN_00062700();\n  bVar5 = true;\nLAB_00065b37:\n  local_70 = local_70 + 1;\n  if (*(int *)(DAT_001d1218 + 0x38) <= local_70) goto LAB_00065b67;\n  local_74 = local_74 + 6;\n  puVar15 = (undefined4 *)*local_64;\n  local_64 = local_64 + 6;\n  if (puVar15 != local_68) goto LAB_00065b67;\n  goto LAB_000658a0;\nLAB_00065b67:\n  __ptr_00 = DAT_001d1238;\n  if (bVar5) {\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }\nLAB_00065b8f:\n  free(__ptr_00);\n  local_68 = (undefined4 *)*local_68;\n  pvVar6 = DAT_001d1224;\n  sVar17 = DAT_001d1228;\n  if (local_68 == (undefined4 *)0x0) goto joined_r0x00065bbb;\n  goto LAB_000657a0;\n}" (if "if") (parenthesized_expression "(DAT_001d1218 != 0)" (( "(") (binary_expression "DAT_001d1218 != 0" (identifier "DAT_001d1218") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar4 = *(int *)(DAT_001d1218 + 0x3c);\n    pcVar1 = "";\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"");\n    DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3);\n    DAT_001d1228 = 0;\n    bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"");\n    qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0);\n    puVar7 = PTR__sch_istable_001cefa0;\n    for (local_68 = *(undefined4 **)(DAT_001d1218 + 0x34); pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0; local_68 = (undefined4 *)*local_68) {\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }\n  return;\nLAB_00065d30:\n  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n  if (*(char *)(iVar10 + 0xc) == '\x01') {\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }\nLAB_00065c0f:\n  if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }\n  FUN_00062c20();\n  FUN_00062700();\n  bVar5 = true;\nLAB_00065b37:\n  local_70 = local_70 + 1;\n  if (*(int *)(DAT_001d1218 + 0x38) <= local_70) goto LAB_00065b67;\n  local_74 = local_74 + 6;\n  puVar15 = (undefined4 *)*local_64;\n  local_64 = local_64 + 6;\n  if (puVar15 != local_68) goto LAB_00065b67;\n  goto LAB_000658a0;\nLAB_00065b67:\n  __ptr_00 = DAT_001d1238;\n  if (bVar5) {\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }\nLAB_00065b8f:\n  free(__ptr_00);\n  local_68 = (undefined4 *)*local_68;\n  pvVar6 = DAT_001d1224;\n  sVar17 = DAT_001d1228;\n  if (local_68 == (undefined4 *)0x0) goto joined_r0x00065bbb;\n  goto LAB_000657a0;\n}" ({ "{") (expression_statement "iVar4 = *(int *)(DAT_001d1218 + 0x3c);" (assignment_expression "iVar4 = *(int *)(DAT_001d1218 + 0x3c)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(DAT_001d1218 + 0x3c)" (* "*") (cast_expression "(int *)(DAT_001d1218 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d1218 + 0x3c)" (( "(") (binary_expression "DAT_001d1218 + 0x3c" (identifier "DAT_001d1218") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "pcVar1 = "";" (assignment_expression "pcVar1 = """ (identifier "pcVar1") (= "=") (string_literal """" (" """) (" """))) (; ";")) (expression_statement "DAT_001d1228 = 0;" (assignment_expression "DAT_001d1228 = 0" (identifier "DAT_001d1228") (= "=") (number_literal "0")) (; ";")) (expression_statement "bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"");" (call_expression "bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"")" (identifier "bfd_link_hash_traverse") (argument_list "(DAT_001d1400,FUN_00062400,"")" (( "(") (identifier "DAT_001d1400") (, ",") (identifier "FUN_00062400") (, ",") (string_literal """" (" """) (" """)) () ")"))) (; ";")) (expression_statement "DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3);" (assignment_expression "DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3)" (identifier "DAT_001d1224") (= "=") (cast_expression "(void *)xmalloc(DAT_001d1228 << 3)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(DAT_001d1228 << 3)" (identifier "xmalloc") (argument_list "(DAT_001d1228 << 3)" (( "(") (binary_expression "DAT_001d1228 << 3" (identifier "DAT_001d1228") (<< "<<") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "DAT_001d1228 = 0;" (assignment_expression "DAT_001d1228 = 0" (identifier "DAT_001d1228") (= "=") (number_literal "0")) (; ";")) (expression_statement "bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"");" (call_expression "bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"")" (identifier "bfd_link_hash_traverse") (argument_list "(DAT_001d1400,FUN_00062780,"")" (( "(") (identifier "DAT_001d1400") (, ",") (identifier "FUN_00062780") (, ",") (string_literal """" (" """) (" """)) () ")"))) (; ";")) (expression_statement "qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0);" (call_expression "qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0)" (identifier "qsort") (argument_list "(DAT_001d1224,DAT_001d1228,8,FUN_000616f0)" (( "(") (identifier "DAT_001d1224") (, ",") (identifier "DAT_001d1228") (, ",") (number_literal "8") (, ",") (identifier "FUN_000616f0") () ")"))) (; ";")) (expression_statement "puVar7 = PTR__sch_istable_001cefa0;" (assignment_expression "puVar7 = PTR__sch_istable_001cefa0" (identifier "puVar7") (= "=") (identifier "PTR__sch_istable_001cefa0")) (; ";")) (for_statement "for (local_68 = *(undefined4 **)(DAT_001d1218 + 0x34); pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0; local_68 = (undefined4 *)*local_68) {\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }" (for "for") (( "(") (assignment_expression "local_68 = *(undefined4 **)(DAT_001d1218 + 0x34)" (identifier "local_68") (= "=") (pointer_expression "*(undefined4 **)(DAT_001d1218 + 0x34)" (* "*") (cast_expression "(undefined4 **)(DAT_001d1218 + 0x34)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_001d1218 + 0x34)" (( "(") (binary_expression "DAT_001d1218 + 0x34" (identifier "DAT_001d1218") (+ "+") (number_literal "0x34")) () ")"))))) (; ";") (comma_expression "pvVar6 = DAT_001d1224,\n        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0" (assignment_expression "pvVar6 = DAT_001d1224" (identifier "pvVar6") (= "=") (identifier "DAT_001d1224")) (, ",") (comma_expression "sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0" (assignment_expression "sVar17 = DAT_001d1228" (identifier "sVar17") (= "=") (identifier "DAT_001d1228")) (, ",") (binary_expression "local_68 != (undefined4 *)0x0" (identifier "local_68") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))))) (; ";") (assignment_expression "local_68 = (undefined4 *)*local_68" (identifier "local_68") (= "=") (cast_expression "(undefined4 *)*local_68" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_68" (* "*") (identifier "local_68")))) () ")") (compound_statement "{\nLAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }\nLAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }\n    DAT_001d1224 = pvVar6;\n    free(__ptr);\n  }" ({ "{") (labeled_statement "LAB_000657a0:\n      if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }" (statement_identifier "LAB_000657a0") (: ":") (if_statement "if (0 < *(int *)(DAT_001d1218 + 0x38)) {\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }" (if "if") (parenthesized_expression "(0 < *(int *)(DAT_001d1218 + 0x38))" (( "(") (binary_expression "0 < *(int *)(DAT_001d1218 + 0x38)" (number_literal "0") (< "<") (pointer_expression "*(int *)(DAT_001d1218 + 0x38)" (* "*") (cast_expression "(int *)(DAT_001d1218 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d1218 + 0x38)" (( "(") (binary_expression "DAT_001d1218 + 0x38" (identifier "DAT_001d1218") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (compound_statement "{\n        local_70 = 0;\n        if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }\n        DAT_001d123c = local_68 + 2;\n        __ptr_00 = (byte *)xstrdup(DAT_001d123c);\n        bVar2 = *__ptr_00;\n        pbVar14 = __ptr_00;\n        DAT_001d1238 = __ptr_00;\n        while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }\n        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }\n        goto LAB_00065b8f;\n      }" ({ "{") (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" (identifier "local_70") (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_68 != *(undefined4 **)(iVar4 + 4)) {\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }" (if "if") (parenthesized_expression "(local_68 != *(undefined4 **)(iVar4 + 4))" (( "(") (binary_expression "local_68 != *(undefined4 **)(iVar4 + 4)" (identifier "local_68") (!= "!=") (pointer_expression "*(undefined4 **)(iVar4 + 4)" (* "*") (cast_expression "(undefined4 **)(iVar4 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")"))))) () ")")) (compound_statement "{\n          local_70 = 0;\n          piVar8 = (int *)(iVar4 + 0x1c);\n          do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);\n        }" ({ "{") (expression_statement "local_70 = 0;" (assignment_expression "local_70 = 0" (identifier "local_70") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8 = (int *)(iVar4 + 0x1c);" (assignment_expression "piVar8 = (int *)(iVar4 + 0x1c)" (identifier "piVar8") (= "=") (cast_expression "(int *)(iVar4 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1c)" (( "(") (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c")) () ")")))) (; ";")) (do_statement "do {\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          } while (puVar15 != local_68);" (do "do") (compound_statement "{\n            local_70 = local_70 + 1;\n            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;\n            puVar15 = (undefined4 *)*piVar8;\n            piVar8 = piVar8 + 6;\n          }" ({ "{") (expression_statement "local_70 = local_70 + 1;" (assignment_expression "local_70 = local_70 + 1" (identifier "local_70") (= "=") (binary_expression "local_70 + 1" (identifier "local_70") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;" (if "if") (parenthesized_expression "(local_70 == *(int *)(DAT_001d1218 + 0x38))" (( "(") (binary_expression "local_70 == *(int *)(DAT_001d1218 + 0x38)" (identifier "local_70") (== "==") (pointer_expression "*(int *)(DAT_001d1218 + 0x38)" (* "*") (cast_expression "(int *)(DAT_001d1218 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d1218 + 0x38)" (( "(") (binary_expression "DAT_001d1218 + 0x38" (identifier "DAT_001d1218") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (goto_statement "goto LAB_000657df;" (goto "goto") (statement_identifier "LAB_000657df") (; ";"))) (expression_statement "puVar15 = (undefined4 *)*piVar8;" (assignment_expression "puVar15 = (undefined4 *)*piVar8" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)*piVar8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (; ";")) (expression_statement "piVar8 = piVar8 + 6;" (assignment_expression "piVar8 = piVar8 + 6" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 6" (identifier "piVar8") (+ "+") (number_literal "6"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar15 != local_68)" (( "(") (binary_expression "puVar15 != local_68" (identifier "puVar15") (!= "!=") (identifier "local_68")) () ")")) (; ";")) (} "}"))) (expression_statement "DAT_001d123c = local_68 + 2;" (assignment_expression "DAT_001d123c = local_68 + 2" (identifier "DAT_001d123c") (= "=") (binary_expression "local_68 + 2" (identifier "local_68") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "__ptr_00 = (byte *)xstrdup(DAT_001d123c);" (assignment_expression "__ptr_00 = (byte *)xstrdup(DAT_001d123c)" (identifier "__ptr_00") (= "=") (cast_expression "(byte *)xstrdup(DAT_001d123c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xstrdup(DAT_001d123c)" (identifier "xstrdup") (argument_list "(DAT_001d123c)" (( "(") (identifier "DAT_001d123c") () ")"))))) (; ";")) (expression_statement "bVar2 = *__ptr_00;" (assignment_expression "bVar2 = *__ptr_00" (identifier "bVar2") (= "=") (pointer_expression "*__ptr_00" (* "*") (identifier "__ptr_00"))) (; ";")) (expression_statement "pbVar14 = __ptr_00;" (assignment_expression "pbVar14 = __ptr_00" (identifier "pbVar14") (= "=") (identifier "__ptr_00")) (; ";")) (expression_statement "DAT_001d1238 = __ptr_00;" (assignment_expression "DAT_001d1238 = __ptr_00" (identifier "DAT_001d1238") (= "=") (identifier "__ptr_00")) (; ";")) (while_statement "while (bVar2 != 0) {\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }" (while "while") (parenthesized_expression "(bVar2 != 0)" (( "(") (binary_expression "bVar2 != 0" (identifier "bVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }\n          pbVar14 = pbVar14 + 1;\n          bVar2 = *pbVar14;\n        }" ({ "{") (if_statement "if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {\n            *pbVar14 = 0x5f;\n          }" (if "if") (parenthesized_expression "((puVar7[(uint)bVar2 * 2] & 0x8c) == 0)" (( "(") (binary_expression "(puVar7[(uint)bVar2 * 2] & 0x8c) == 0" (parenthesized_expression "(puVar7[(uint)bVar2 * 2] & 0x8c)" (( "(") (binary_expression "puVar7[(uint)bVar2 * 2] & 0x8c" (subscript_expression "puVar7[(uint)bVar2 * 2]" (identifier "puVar7") ([ "[") (binary_expression "(uint)bVar2 * 2" (cast_expression "(uint)bVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar2")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "0x8c")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *pbVar14 = 0x5f;\n          }" ({ "{") (expression_statement "*pbVar14 = 0x5f;" (assignment_expression "*pbVar14 = 0x5f" (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")) (= "=") (number_literal "0x5f")) (; ";")) (} "}"))) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar2 = *pbVar14;" (assignment_expression "bVar2 = *pbVar14" (identifier "bVar2") (= "=") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14"))) (; ";")) (} "}"))) (if_statement "if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }" (if "if") (parenthesized_expression "(local_70 < *(int *)(DAT_001d1218 + 0x38))" (( "(") (binary_expression "local_70 < *(int *)(DAT_001d1218 + 0x38)" (identifier "local_70") (< "<") (pointer_expression "*(int *)(DAT_001d1218 + 0x38)" (* "*") (cast_expression "(int *)(DAT_001d1218 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d1218 + 0x38)" (( "(") (binary_expression "DAT_001d1218 + 0x38" (identifier "DAT_001d1218") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (compound_statement "{\n          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);\n          if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }\n        }" ({ "{") (expression_statement "local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);" (assignment_expression "local_74 = (undefined4 *)(iVar4 + local_70 * 0x18)" (identifier "local_74") (= "=") (cast_expression "(undefined4 *)(iVar4 + local_70 * 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + local_70 * 0x18)" (( "(") (binary_expression "iVar4 + local_70 * 0x18" (identifier "iVar4") (+ "+") (binary_expression "local_70 * 0x18" (identifier "local_70") (* "*") (number_literal "0x18"))) () ")")))) (; ";")) (if_statement "if (local_68 == (undefined4 *)local_74[1]) {\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }" (if "if") (parenthesized_expression "(local_68 == (undefined4 *)local_74[1])" (( "(") (binary_expression "local_68 == (undefined4 *)local_74[1]" (identifier "local_68") (== "==") (cast_expression "(undefined4 *)local_74[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_74[1]" (identifier "local_74") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);\n            bVar5 = false;\nLAB_000658a0:\n            cVar3 = *(char *)*local_74;\n            sVar17 = strlen((char *)*local_74);\n            __dest = (char *)xmalloc(sVar17 + 8);\n            if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }\n            strcpy(__dest,(char *)*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }\n            sprintf(__dest,"%s%s","__imp_",*local_74);\n            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n            if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }\nLAB_00065dc0:\n            free(__dest);\n            goto LAB_00065b37;\n          }" ({ "{") (expression_statement "local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);" (assignment_expression "local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18)" (identifier "local_64") (= "=") (cast_expression "(undefined4 *)(iVar4 + 0x1c + local_70 * 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1c + local_70 * 0x18)" (( "(") (binary_expression "iVar4 + 0x1c + local_70 * 0x18" (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c")) (+ "+") (binary_expression "local_70 * 0x18" (identifier "local_70") (* "*") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" (identifier "bVar5") (= "=") (false "false")) (; ";")) (labeled_statement "LAB_000658a0:\n            cVar3 = *(char *)*local_74;" (statement_identifier "LAB_000658a0") (: ":") (expression_statement "cVar3 = *(char *)*local_74;" (assignment_expression "cVar3 = *(char *)*local_74" (identifier "cVar3") (= "=") (pointer_expression "*(char *)*local_74" (* "*") (cast_expression "(char *)*local_74" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_74" (* "*") (identifier "local_74"))))) (; ";"))) (expression_statement "sVar17 = strlen((char *)*local_74);" (assignment_expression "sVar17 = strlen((char *)*local_74)" (identifier "sVar17") (= "=") (call_expression "strlen((char *)*local_74)" (identifier "strlen") (argument_list "((char *)*local_74)" (( "(") (cast_expression "(char *)*local_74" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_74" (* "*") (identifier "local_74"))) () ")")))) (; ";")) (expression_statement "__dest = (char *)xmalloc(sVar17 + 8);" (assignment_expression "__dest = (char *)xmalloc(sVar17 + 8)" (identifier "__dest") (= "=") (cast_expression "(char *)xmalloc(sVar17 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar17 + 8)" (identifier "xmalloc") (argument_list "(sVar17 + 8)" (( "(") (binary_expression "sVar17 + 8" (identifier "sVar17") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (cVar3 != '@') {\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }" (if "if") (parenthesized_expression "(cVar3 != '@')" (( "(") (binary_expression "cVar3 != '@'" (identifier "cVar3") (!= "!=") (char_literal "'@'" (' "'") (character "@") (' "'"))) () ")")) (compound_statement "{\n              pcVar11 = (char *)*local_74;\n              pcVar9 = strchr(pcVar11,0x40);\n              pcVar12 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar12,pcVar11);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);\n              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);\n              if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }\n              pcVar11 = "_";\n              if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\n              }\n              sprintf(__dest,"%s%s",pcVar11,*local_74);\n              sVar17 = strlen(__dest);\n              pcVar11 = (char *)xmalloc(sVar17 + 3);\n              strcpy(pcVar11,__dest);\n              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);\n              if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }\n              pvVar6 = DAT_001d1224;\n              uVar19 = 0;\n              sVar17 = DAT_001d1228;\n              while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }\nLAB_00065a75:\n              sVar17 = DAT_001d1228;\n              pvVar6 = DAT_001d1224;\n              cVar3 = *pcVar11;\n              if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }\n              goto LAB_00065b08;\n            }" ({ "{") (expression_statement "pcVar11 = (char *)*local_74;" (assignment_expression "pcVar11 = (char *)*local_74" (identifier "pcVar11") (= "=") (cast_expression "(char *)*local_74" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_74" (* "*") (identifier "local_74")))) (; ";")) (expression_statement "pcVar9 = strchr(pcVar11,0x40);" (assignment_expression "pcVar9 = strchr(pcVar11,0x40)" (identifier "pcVar9") (= "=") (call_expression "strchr(pcVar11,0x40)" (identifier "strchr") (argument_list "(pcVar11,0x40)" (( "(") (identifier "pcVar11") (, ",") (number_literal "0x40") () ")")))) (; ";")) (expression_statement "pcVar12 = "_";" (assignment_expression "pcVar12 = "_"" (identifier "pcVar12") (= "=") (string_literal ""_"" (" """) (string_content "_") (" """))) (; ";")) (if_statement "if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar12 = pcVar1;\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                pcVar12 = pcVar1;\n              }" ({ "{") (expression_statement "pcVar12 = pcVar1;" (assignment_expression "pcVar12 = pcVar1" (identifier "pcVar12") (= "=") (identifier "pcVar1")) (; ";")) (} "}"))) (expression_statement "sprintf(__dest,"%s%s",pcVar12,pcVar11);" (call_expression "sprintf(__dest,"%s%s",pcVar12,pcVar11)" (identifier "sprintf") (argument_list "(__dest,"%s%s",pcVar12,pcVar11)" (( "(") (identifier "__dest") (, ",") (string_literal ""%s%s"" (" """) (string_content "%s%s") (" """)) (, ",") (identifier "pcVar12") (, ",") (identifier "pcVar11") () ")"))) (; ";")) (expression_statement "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" (identifier "iVar10") (= "=") (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" (identifier "bfd_link_hash_lookup") (argument_list "(*(undefined4 *)(param_2 + 0x20),__dest,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 "__dest") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }" (if "if") (parenthesized_expression "((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01'))" (( "(") (binary_expression "(iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')" (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" (( "(") (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar10 + 0xc)" (* "*") (cast_expression "(char *)(iVar10 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                if (pcVar9 != (char *)0x0) goto LAB_00065e00;\n                free(__dest);\n                goto LAB_00065c0f;\n              }" ({ "{") (if_statement "if (pcVar9 != (char *)0x0) goto LAB_00065e00;" (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"))) () ")")) (goto_statement "goto LAB_00065e00;" (goto "goto") (statement_identifier "LAB_00065e00") (; ";"))) (expression_statement "free(__dest);" (call_expression "free(__dest)" (identifier "free") (argument_list "(__dest)" (( "(") (identifier "__dest") () ")"))) (; ";")) (goto_statement "goto LAB_00065c0f;" (goto "goto") (statement_identifier "LAB_00065c0f") (; ";")) (} "}"))) (expression_statement "pcVar11 = "_";" (assignment_expression "pcVar11 = "_"" (identifier "pcVar11") (= "=") (string_literal ""_"" (" """) (string_content "_") (" """))) (; ";")) (if_statement "if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\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                pcVar11 = pcVar1;\n              }" ({ "{") (expression_statement "pcVar11 = pcVar1;" (assignment_expression "pcVar11 = pcVar1" (identifier "pcVar11") (= "=") (identifier "pcVar1")) (; ";")) (} "}"))) (expression_statement "sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);" (call_expression "sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74)" (identifier "sprintf") (argument_list "(__dest,"%s%s%s","__imp_",pcVar11,*local_74)" (( "(") (identifier "__dest") (, ",") (string_literal ""%s%s%s"" (" """) (string_content "%s%s%s") (" """)) (, ",") (string_literal ""__imp_"" (" """) (string_content "__imp_") (" """)) (, ",") (identifier "pcVar11") (, ",") (pointer_expression "*local_74" (* "*") (identifier "local_74")) () ")"))) (; ";")) (expression_statement "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" (identifier "iVar10") (= "=") (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" (identifier "bfd_link_hash_lookup") (argument_list "(*(undefined4 *)(param_2 + 0x20),__dest,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 "__dest") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }\n              else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                bVar20 = false;\n                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;\n              }" ({ "{") (expression_statement "bVar20 = false;" (assignment_expression "bVar20 = false" (identifier "bVar20") (= "=") (false "false")) (; ";")) (if_statement "if (pcVar9 != (char *)0x0) goto LAB_00065dc0;" (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"))) () ")")) (goto_statement "goto LAB_00065dc0;" (goto "goto") (statement_identifier "LAB_00065dc0") (; ";"))) (} "}")) (else_clause "else {\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }" (else "else") (compound_statement "{\n                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;\n              }" ({ "{") (expression_statement "bVar20 = *(char *)(iVar10 + 0xc) == '\x01';" (assignment_expression "bVar20 = *(char *)(iVar10 + 0xc) == '\x01'" (identifier "bVar20") (= "=") (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar10 + 0xc)" (* "*") (cast_expression "(char *)(iVar10 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'")))) (; ";")) (if_statement "if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))\n                goto LAB_00065b1c;" (if "if") (parenthesized_expression "((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))" (( "(") (binary_expression "(pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01')" (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"))) () ")")) (|| "||") (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" (( "(") (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar10 + 0xc)" (* "*") (cast_expression "(char *)(iVar10 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_00065b1c;" (goto "goto") (statement_identifier "LAB_00065b1c") (; ";"))) (} "}")))) (expression_statement "pcVar11 = "_";" (assignment_expression "pcVar11 = "_"" (identifier "pcVar11") (= "=") (string_literal ""_"" (" """) (string_content "_") (" """))) (; ";")) (if_statement "if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                pcVar11 = pcVar1;\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                pcVar11 = pcVar1;\n              }" ({ "{") (expression_statement "pcVar11 = pcVar1;" (assignment_expression "pcVar11 = pcVar1" (identifier "pcVar11") (= "=") (identifier "pcVar1")) (; ";")) (} "}"))) (expression_statement "sprintf(__dest,"%s%s",pcVar11,*local_74);" (call_expression "sprintf(__dest,"%s%s",pcVar11,*local_74)" (identifier "sprintf") (argument_list "(__dest,"%s%s",pcVar11,*local_74)" (( "(") (identifier "__dest") (, ",") (string_literal ""%s%s"" (" """) (string_content "%s%s") (" """)) (, ",") (identifier "pcVar11") (, ",") (pointer_expression "*local_74" (* "*") (identifier "local_74")) () ")"))) (; ";")) (expression_statement "sVar17 = strlen(__dest);" (assignment_expression "sVar17 = strlen(__dest)" (identifier "sVar17") (= "=") (call_expression "strlen(__dest)" (identifier "strlen") (argument_list "(__dest)" (( "(") (identifier "__dest") () ")")))) (; ";")) (expression_statement "pcVar11 = (char *)xmalloc(sVar17 + 3);" (assignment_expression "pcVar11 = (char *)xmalloc(sVar17 + 3)" (identifier "pcVar11") (= "=") (cast_expression "(char *)xmalloc(sVar17 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar17 + 3)" (identifier "xmalloc") (argument_list "(sVar17 + 3)" (( "(") (binary_expression "sVar17 + 3" (identifier "sVar17") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "strcpy(pcVar11,__dest);" (call_expression "strcpy(pcVar11,__dest)" (identifier "strcpy") (argument_list "(pcVar11,__dest)" (( "(") (identifier "pcVar11") (, ",") (identifier "__dest") () ")"))) (; ";")) (expression_statement "pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);" (assignment_expression "pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40)" (identifier "pcVar12") (= "=") (call_expression "strchr(pcVar11 + (*pcVar11 == '@'),0x40)" (identifier "strchr") (argument_list "(pcVar11 + (*pcVar11 == '@'),0x40)" (( "(") (binary_expression "pcVar11 + (*pcVar11 == '@')" (identifier "pcVar11") (+ "+") (parenthesized_expression "(*pcVar11 == '@')" (( "(") (binary_expression "*pcVar11 == '@'" (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) (== "==") (char_literal "'@'" (' "'") (character "@") (' "'"))) () ")"))) (, ",") (number_literal "0x40") () ")")))) (; ";")) (if_statement "if (pcVar12 != (char *)0x0) {\n                pcVar12[1] = '\0';\n              }" (if "if") (parenthesized_expression "(pcVar12 != (char *)0x0)" (( "(") (binary_expression "pcVar12 != (char *)0x0" (identifier "pcVar12") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                pcVar12[1] = '\0';\n              }" ({ "{") (expression_statement "pcVar12[1] = '\0';" (assignment_expression "pcVar12[1] = '\0'" (subscript_expression "pcVar12[1]" (identifier "pcVar12") ([ "[") (number_literal "1") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (expression_statement "pvVar6 = DAT_001d1224;" (assignment_expression "pvVar6 = DAT_001d1224" (identifier "pvVar6") (= "=") (identifier "DAT_001d1224")) (; ";")) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar17 = DAT_001d1228;" (assignment_expression "sVar17 = DAT_001d1228" (identifier "sVar17") (= "=") (identifier "DAT_001d1228")) (; ";")) (while_statement "while (uVar19 < sVar17) {\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }" (while "while") (parenthesized_expression "(uVar19 < sVar17)" (( "(") (binary_expression "uVar19 < sVar17" (identifier "uVar19") (< "<") (identifier "sVar17")) () ")")) (compound_statement "{\n                while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }\n                if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }\n                uVar19 = uVar16 + 1;\n              }" ({ "{") (while_statement "while( true ) {\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                  uVar16 = uVar19 + sVar17 >> 1;\n                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                  iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                  if (-1 < iVar10) break;\n                  sVar17 = uVar16;\n                  if (uVar16 <= uVar19) goto LAB_00065a75;\n                }" ({ "{") (expression_statement "uVar16 = uVar19 + sVar17 >> 1;" (assignment_expression "uVar16 = uVar19 + sVar17 >> 1" (identifier "uVar16") (= "=") (binary_expression "uVar19 + sVar17 >> 1" (binary_expression "uVar19 + sVar17" (identifier "uVar19") (+ "+") (identifier "sVar17")) (>> ">>") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);" (assignment_expression "puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8)" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)((int)pvVar6 + uVar16 * 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar6 + uVar16 * 8)" (( "(") (binary_expression "(int)pvVar6 + uVar16 * 8" (cast_expression "(int)pvVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar6")) (+ "+") (binary_expression "uVar16 * 8" (identifier "uVar16") (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "iVar10 = strcmp(pcVar11,(char *)*puVar15);" (assignment_expression "iVar10 = strcmp(pcVar11,(char *)*puVar15)" (identifier "iVar10") (= "=") (call_expression "strcmp(pcVar11,(char *)*puVar15)" (identifier "strcmp") (argument_list "(pcVar11,(char *)*puVar15)" (( "(") (identifier "pcVar11") (, ",") (cast_expression "(char *)*puVar15" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) () ")")))) (; ";")) (if_statement "if (-1 < iVar10) break;" (if "if") (parenthesized_expression "(-1 < iVar10)" (( "(") (binary_expression "-1 < iVar10" (number_literal "-1") (< "<") (identifier "iVar10")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar17 = uVar16;" (assignment_expression "sVar17 = uVar16" (identifier "sVar17") (= "=") (identifier "uVar16")) (; ";")) (if_statement "if (uVar16 <= uVar19) goto LAB_00065a75;" (if "if") (parenthesized_expression "(uVar16 <= uVar19)" (( "(") (binary_expression "uVar16 <= uVar19" (identifier "uVar16") (<= "<=") (identifier "uVar19")) () ")")) (goto_statement "goto LAB_00065a75;" (goto "goto") (statement_identifier "LAB_00065a75") (; ";"))) (} "}"))) (if_statement "if (iVar10 == 0) {\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                  break;\n                }" ({ "{") (expression_statement "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" (identifier "iVar10") (= "=") (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" (identifier "bfd_link_hash_lookup") (argument_list "(*(undefined4 *)(param_2 + 0x20),puVar15[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 "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;" (if "if") (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" (( "(") (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar10 + 0xc)" (* "*") (cast_expression "(char *)(iVar10 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (goto_statement "goto LAB_00065d58;" (goto "goto") (statement_identifier "LAB_00065d58") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "uVar19 = uVar16 + 1;" (assignment_expression "uVar19 = uVar16 + 1" (identifier "uVar19") (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (labeled_statement "LAB_00065a75:\n              sVar17 = DAT_001d1228;" (statement_identifier "LAB_00065a75") (: ":") (expression_statement "sVar17 = DAT_001d1228;" (assignment_expression "sVar17 = DAT_001d1228" (identifier "sVar17") (= "=") (identifier "DAT_001d1228")) (; ";"))) (expression_statement "pvVar6 = DAT_001d1224;" (assignment_expression "pvVar6 = DAT_001d1224" (identifier "pvVar6") (= "=") (identifier "DAT_001d1224")) (; ";")) (expression_statement "cVar3 = *pcVar11;" (assignment_expression "cVar3 = *pcVar11" (identifier "cVar3") (= "=") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11"))) (; ";")) (if_statement "if (cVar3 != '?') {\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(cVar3 != '?')" (( "(") (binary_expression "cVar3 != '?'" (identifier "cVar3") (!= "!=") (char_literal "'?'" (' "'") (character "?") (' "'"))) () ")")) (compound_statement "{\n                local_78 = DAT_001d1224;\n                if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n              }" ({ "{") (expression_statement "local_78 = DAT_001d1224;" (assignment_expression "local_78 = DAT_001d1224" (identifier "local_78") (= "=") (identifier "DAT_001d1224")) (; ";")) (if_statement "if (pcVar12 == (char *)0x0) {\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }\n                else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }" (if "if") (parenthesized_expression "(pcVar12 == (char *)0x0)" (( "(") (binary_expression "pcVar12 == (char *)0x0" (identifier "pcVar12") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  if (cVar3 == '@') goto LAB_00065f40;\n                  sVar13 = strlen(pcVar11);\n                  (pcVar11 + sVar13)[0] = '@';\n                  (pcVar11 + sVar13)[1] = '\0';\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }\nLAB_00065e95:\n                  cVar3 = *pcVar11;\njoined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }\n                  pvVar6 = DAT_001d1224;\n                  uVar19 = 0;\n                  sVar17 = DAT_001d1228;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }" ({ "{") (if_statement "if (cVar3 == '@') goto LAB_00065f40;" (if "if") (parenthesized_expression "(cVar3 == '@')" (( "(") (binary_expression "cVar3 == '@'" (identifier "cVar3") (== "==") (char_literal "'@'" (' "'") (character "@") (' "'"))) () ")")) (goto_statement "goto LAB_00065f40;" (goto "goto") (statement_identifier "LAB_00065f40") (; ";"))) (expression_statement "sVar13 = strlen(pcVar11);" (assignment_expression "sVar13 = strlen(pcVar11)" (identifier "sVar13") (= "=") (call_expression "strlen(pcVar11)" (identifier "strlen") (argument_list "(pcVar11)" (( "(") (identifier "pcVar11") () ")")))) (; ";")) (expression_statement "(pcVar11 + sVar13)[0] = '@';" (assignment_expression "(pcVar11 + sVar13)[0] = '@'" (subscript_expression "(pcVar11 + sVar13)[0]" (parenthesized_expression "(pcVar11 + sVar13)" (( "(") (binary_expression "pcVar11 + sVar13" (identifier "pcVar11") (+ "+") (identifier "sVar13")) () ")")) ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "'@'" (' "'") (character "@") (' "'"))) (; ";")) (expression_statement "(pcVar11 + sVar13)[1] = '\0';" (assignment_expression "(pcVar11 + sVar13)[1] = '\0'" (subscript_expression "(pcVar11 + sVar13)[1]" (parenthesized_expression "(pcVar11 + sVar13)" (( "(") (binary_expression "pcVar11 + sVar13" (identifier "pcVar11") (+ "+") (identifier "sVar13")) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (while_statement "while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }" (while "while") (parenthesized_expression "(uVar19 < sVar17)" (( "(") (binary_expression "uVar19 < sVar17" (identifier "uVar19") (< "<") (identifier "sVar17")) () ")")) (compound_statement "{\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }\n                    if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }\n                    uVar19 = uVar16 + 1;\n                  }" ({ "{") (while_statement "while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065e95;\n                    }" ({ "{") (expression_statement "uVar16 = sVar17 + uVar19 >> 1;" (assignment_expression "uVar16 = sVar17 + uVar19 >> 1" (identifier "uVar16") (= "=") (binary_expression "sVar17 + uVar19 >> 1" (binary_expression "sVar17 + uVar19" (identifier "sVar17") (+ "+") (identifier "uVar19")) (>> ">>") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);" (assignment_expression "puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8)" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)((int)pvVar6 + uVar16 * 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar6 + uVar16 * 8)" (( "(") (binary_expression "(int)pvVar6 + uVar16 * 8" (cast_expression "(int)pvVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar6")) (+ "+") (binary_expression "uVar16 * 8" (identifier "uVar16") (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "iVar10 = strcmp(pcVar11,(char *)*puVar15);" (assignment_expression "iVar10 = strcmp(pcVar11,(char *)*puVar15)" (identifier "iVar10") (= "=") (call_expression "strcmp(pcVar11,(char *)*puVar15)" (identifier "strcmp") (argument_list "(pcVar11,(char *)*puVar15)" (( "(") (identifier "pcVar11") (, ",") (cast_expression "(char *)*puVar15" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) () ")")))) (; ";")) (if_statement "if (-1 < iVar10) break;" (if "if") (parenthesized_expression "(-1 < iVar10)" (( "(") (binary_expression "-1 < iVar10" (number_literal "-1") (< "<") (identifier "iVar10")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar17 = uVar16;" (assignment_expression "sVar17 = uVar16" (identifier "sVar17") (= "=") (identifier "uVar16")) (; ";")) (if_statement "if (uVar16 <= uVar19) goto LAB_00065e95;" (if "if") (parenthesized_expression "(uVar16 <= uVar19)" (( "(") (binary_expression "uVar16 <= uVar19" (identifier "uVar16") (<= "<=") (identifier "uVar19")) () ")")) (goto_statement "goto LAB_00065e95;" (goto "goto") (statement_identifier "LAB_00065e95") (; ";"))) (} "}"))) (if_statement "if (iVar10 == 0) {\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                      cVar3 = *pcVar11;\n                      goto joined_r0x00066040;\n                    }" ({ "{") (expression_statement "iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" (identifier "iVar10") (= "=") (call_expression "bfd_link_hash_lookup\n                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" (identifier "bfd_link_hash_lookup") (argument_list "(*(undefined4 *)(param_2 + 0x20),puVar15[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 "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;" (if "if") (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" (( "(") (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar10 + 0xc)" (* "*") (cast_expression "(char *)(iVar10 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (goto_statement "goto LAB_00065d58;" (goto "goto") (statement_identifier "LAB_00065d58") (; ";"))) (expression_statement "cVar3 = *pcVar11;" (assignment_expression "cVar3 = *pcVar11" (identifier "cVar3") (= "=") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11"))) (; ";")) (goto_statement "goto joined_r0x00066040;" (goto "goto") (statement_identifier "joined_r0x00066040") (; ";")) (} "}"))) (expression_statement "uVar19 = uVar16 + 1;" (assignment_expression "uVar19 = uVar16 + 1" (identifier "uVar19") (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (labeled_statement "LAB_00065e95:\n                  cVar3 = *pcVar11;" (statement_identifier "LAB_00065e95") (: ":") (expression_statement "cVar3 = *pcVar11;" (assignment_expression "cVar3 = *pcVar11" (identifier "cVar3") (= "=") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11"))) (; ";"))) (labeled_statement "joined_r0x00066040:\n                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }" (statement_identifier "joined_r0x00066040") (: ":") (if_statement "if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {\n                    *pcVar11 = '@';\n                  }\n                  else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }" (if "if") (parenthesized_expression "((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0))" (( "(") (binary_expression "(cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)" (parenthesized_expression "(cVar3 == '_')" (( "(") (binary_expression "cVar3 == '_'" (identifier "cVar3") (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (&& "&&") (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                    *pcVar11 = '@';\n                  }" ({ "{") (expression_statement "*pcVar11 = '@';" (assignment_expression "*pcVar11 = '@'" (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) (= "=") (char_literal "'@'" (' "'") (character "@") (' "'"))) (; ";")) (} "}")) (else_clause "else {\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }" (else "else") (compound_statement "{\n                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);\n                    *pcVar11 = '@';\n                  }" ({ "{") (expression_statement "memmove(pcVar11 + 1,pcVar11,sVar13 + 2);" (call_expression "memmove(pcVar11 + 1,pcVar11,sVar13 + 2)" (identifier "memmove") (argument_list "(pcVar11 + 1,pcVar11,sVar13 + 2)" (( "(") (binary_expression "pcVar11 + 1" (identifier "pcVar11") (+ "+") (number_literal "1")) (, ",") (identifier "pcVar11") (, ",") (binary_expression "sVar13 + 2" (identifier "sVar13") (+ "+") (number_literal "2")) () ")"))) (; ";")) (expression_statement "*pcVar11 = '@';" (assignment_expression "*pcVar11 = '@'" (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) (= "=") (char_literal "'@'" (' "'") (character "@") (' "'"))) (; ";")) (} "}"))))) (expression_statement "pvVar6 = DAT_001d1224;" (assignment_expression "pvVar6 = DAT_001d1224" (identifier "pvVar6") (= "=") (identifier "DAT_001d1224")) (; ";")) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar17 = DAT_001d1228;" (assignment_expression "sVar17 = DAT_001d1228" (identifier "sVar17") (= "=") (identifier "DAT_001d1228")) (; ";")) (while_statement "while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }" (while "while") (parenthesized_expression "(uVar19 < sVar17)" (( "(") (binary_expression "uVar19 < sVar17" (identifier "uVar19") (< "<") (identifier "sVar17")) () ")")) (compound_statement "{\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }" ({ "{") (while_statement "while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }" ({ "{") (expression_statement "uVar16 = sVar17 + uVar19 >> 1;" (assignment_expression "uVar16 = sVar17 + uVar19 >> 1" (identifier "uVar16") (= "=") (binary_expression "sVar17 + uVar19 >> 1" (binary_expression "sVar17 + uVar19" (identifier "sVar17") (+ "+") (identifier "uVar19")) (>> ">>") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);" (assignment_expression "puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8)" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)((int)pvVar6 + uVar16 * 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar6 + uVar16 * 8)" (( "(") (binary_expression "(int)pvVar6 + uVar16 * 8" (cast_expression "(int)pvVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar6")) (+ "+") (binary_expression "uVar16 * 8" (identifier "uVar16") (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "iVar10 = strcmp(pcVar11,(char *)*puVar15);" (assignment_expression "iVar10 = strcmp(pcVar11,(char *)*puVar15)" (identifier "iVar10") (= "=") (call_expression "strcmp(pcVar11,(char *)*puVar15)" (identifier "strcmp") (argument_list "(pcVar11,(char *)*puVar15)" (( "(") (identifier "pcVar11") (, ",") (cast_expression "(char *)*puVar15" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) () ")")))) (; ";")) (if_statement "if (-1 < iVar10) break;" (if "if") (parenthesized_expression "(-1 < iVar10)" (( "(") (binary_expression "-1 < iVar10" (number_literal "-1") (< "<") (identifier "iVar10")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar17 = uVar16;" (assignment_expression "sVar17 = uVar16" (identifier "sVar17") (= "=") (identifier "uVar16")) (; ";")) (if_statement "if (uVar16 <= uVar19) goto LAB_00065b08;" (if "if") (parenthesized_expression "(uVar16 <= uVar19)" (( "(") (binary_expression "uVar16 <= uVar19" (identifier "uVar16") (<= "<=") (identifier "uVar19")) () ")")) (goto_statement "goto LAB_00065b08;" (goto "goto") (statement_identifier "LAB_00065b08") (; ";"))) (} "}"))) (if_statement "if (iVar10 == 0) goto LAB_00065d30;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00065d30;" (goto "goto") (statement_identifier "LAB_00065d30") (; ";"))) (expression_statement "uVar19 = uVar16 + 1;" (assignment_expression "uVar19 = uVar16 + 1" (identifier "uVar19") (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }" (else "else") (compound_statement "{\n                  if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }\n                  uVar19 = 0;\n                  while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }\n                }" ({ "{") (if_statement "if (cVar3 == '@') {\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }\n                  else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }" (if "if") (parenthesized_expression "(cVar3 == '@')" (( "(") (binary_expression "cVar3 == '@'" (identifier "cVar3") (== "==") (char_literal "'@'" (' "'") (character "@") (' "'"))) () ")")) (compound_statement "{\nLAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }\n                    uVar19 = 0;\n                    uVar16 = sVar17;\n                    while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }\nLAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;\n                  }" ({ "{") (labeled_statement "LAB_00065f40:\n                    if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\n                    }" (statement_identifier "LAB_00065f40") (: ":") (if_statement "if (*(int *)(DAT_001d127c + 0x14) == 0) {\n                      strcpy(pcVar11,pcVar11 + 1);\n                    }\n                    else {\n                      *pcVar11 = '_';\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                      strcpy(pcVar11,pcVar11 + 1);\n                    }" ({ "{") (expression_statement "strcpy(pcVar11,pcVar11 + 1);" (call_expression "strcpy(pcVar11,pcVar11 + 1)" (identifier "strcpy") (argument_list "(pcVar11,pcVar11 + 1)" (( "(") (identifier "pcVar11") (, ",") (binary_expression "pcVar11 + 1" (identifier "pcVar11") (+ "+") (number_literal "1")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n                      *pcVar11 = '_';\n                    }" (else "else") (compound_statement "{\n                      *pcVar11 = '_';\n                    }" ({ "{") (expression_statement "*pcVar11 = '_';" (assignment_expression "*pcVar11 = '_'" (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) (= "=") (char_literal "'_'" (' "'") (character "_") (' "'"))) (; ";")) (} "}"))))) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar16 = sVar17;" (assignment_expression "uVar16 = sVar17" (identifier "uVar16") (= "=") (identifier "sVar17")) (; ";")) (while_statement "while (uVar19 < uVar16) {\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }" (while "while") (parenthesized_expression "(uVar19 < uVar16)" (( "(") (binary_expression "uVar19 < uVar16" (identifier "uVar19") (< "<") (identifier "uVar16")) () ")")) (compound_statement "{\n                      while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }\n                      if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }\n                      uVar19 = uVar18 + 1;\n                    }" ({ "{") (while_statement "while( true ) {\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                        uVar18 = uVar16 + uVar19 >> 1;\n                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);\n                        iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                        if (-1 < iVar10) break;\n                        uVar16 = uVar18;\n                        if (uVar18 <= uVar19) goto LAB_00065fad;\n                      }" ({ "{") (expression_statement "uVar18 = uVar16 + uVar19 >> 1;" (assignment_expression "uVar18 = uVar16 + uVar19 >> 1" (identifier "uVar18") (= "=") (binary_expression "uVar16 + uVar19 >> 1" (binary_expression "uVar16 + uVar19" (identifier "uVar16") (+ "+") (identifier "uVar19")) (>> ">>") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);" (assignment_expression "puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8)" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)((int)pvVar6 + uVar18 * 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar6 + uVar18 * 8)" (( "(") (binary_expression "(int)pvVar6 + uVar18 * 8" (cast_expression "(int)pvVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar6")) (+ "+") (binary_expression "uVar18 * 8" (identifier "uVar18") (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "iVar10 = strcmp(pcVar11,(char *)*puVar15);" (assignment_expression "iVar10 = strcmp(pcVar11,(char *)*puVar15)" (identifier "iVar10") (= "=") (call_expression "strcmp(pcVar11,(char *)*puVar15)" (identifier "strcmp") (argument_list "(pcVar11,(char *)*puVar15)" (( "(") (identifier "pcVar11") (, ",") (cast_expression "(char *)*puVar15" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) () ")")))) (; ";")) (if_statement "if (-1 < iVar10) break;" (if "if") (parenthesized_expression "(-1 < iVar10)" (( "(") (binary_expression "-1 < iVar10" (number_literal "-1") (< "<") (identifier "iVar10")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar16 = uVar18;" (assignment_expression "uVar16 = uVar18" (identifier "uVar16") (= "=") (identifier "uVar18")) (; ";")) (if_statement "if (uVar18 <= uVar19) goto LAB_00065fad;" (if "if") (parenthesized_expression "(uVar18 <= uVar19)" (( "(") (binary_expression "uVar18 <= uVar19" (identifier "uVar18") (<= "<=") (identifier "uVar19")) () ")")) (goto_statement "goto LAB_00065fad;" (goto "goto") (statement_identifier "LAB_00065fad") (; ";"))) (} "}"))) (if_statement "if (iVar10 == 0) {\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);\n                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;\n                        local_78 = DAT_001d1224;\n                        sVar17 = DAT_001d1228;\n                        break;\n                      }" ({ "{") (expression_statement "iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" (identifier "iVar10") (= "=") (call_expression "bfd_link_hash_lookup\n                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" (identifier "bfd_link_hash_lookup") (argument_list "(*(undefined4 *)(param_2 + 0x20),puVar15[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 "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;" (if "if") (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" (( "(") (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar10 + 0xc)" (* "*") (cast_expression "(char *)(iVar10 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (goto_statement "goto LAB_00065d58;" (goto "goto") (statement_identifier "LAB_00065d58") (; ";"))) (expression_statement "local_78 = DAT_001d1224;" (assignment_expression "local_78 = DAT_001d1224" (identifier "local_78") (= "=") (identifier "DAT_001d1224")) (; ";")) (expression_statement "sVar17 = DAT_001d1228;" (assignment_expression "sVar17 = DAT_001d1228" (identifier "sVar17") (= "=") (identifier "DAT_001d1228")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "uVar19 = uVar18 + 1;" (assignment_expression "uVar19 = uVar18 + 1" (identifier "uVar19") (= "=") (binary_expression "uVar18 + 1" (identifier "uVar18") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (labeled_statement "LAB_00065fad:\n                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;" (statement_identifier "LAB_00065fad") (: ":") (if_statement "if (pcVar12 != (char *)0x0) goto LAB_00065aa8;" (if "if") (parenthesized_expression "(pcVar12 != (char *)0x0)" (( "(") (binary_expression "pcVar12 != (char *)0x0" (identifier "pcVar12") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00065aa8;" (goto "goto") (statement_identifier "LAB_00065aa8") (; ";")))) (} "}")) (else_clause "else {\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }" (else "else") (compound_statement "{\nLAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);\n                    *pcVar12 = '\0';\n                  }" ({ "{") (labeled_statement "LAB_00065aa8:\n                    pcVar12 = strchr(pcVar11,0x40);" (statement_identifier "LAB_00065aa8") (: ":") (expression_statement "pcVar12 = strchr(pcVar11,0x40);" (assignment_expression "pcVar12 = strchr(pcVar11,0x40)" (identifier "pcVar12") (= "=") (call_expression "strchr(pcVar11,0x40)" (identifier "strchr") (argument_list "(pcVar11,0x40)" (( "(") (identifier "pcVar11") (, ",") (number_literal "0x40") () ")")))) (; ";"))) (expression_statement "*pcVar12 = '\0';" (assignment_expression "*pcVar12 = '\0'" (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")))) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (while_statement "while (uVar19 < sVar17) {\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }" (while "while") (parenthesized_expression "(uVar19 < sVar17)" (( "(") (binary_expression "uVar19 < sVar17" (identifier "uVar19") (< "<") (identifier "sVar17")) () ")")) (compound_statement "{\n                    while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }\n                    if (iVar10 == 0) goto LAB_00065d30;\n                    uVar19 = uVar16 + 1;\n                  }" ({ "{") (while_statement "while( true ) {\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                      uVar16 = sVar17 + uVar19 >> 1;\n                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);\n                      iVar10 = strcmp(pcVar11,(char *)*puVar15);\n                      if (-1 < iVar10) break;\n                      sVar17 = uVar16;\n                      if (uVar16 <= uVar19) goto LAB_00065b08;\n                    }" ({ "{") (expression_statement "uVar16 = sVar17 + uVar19 >> 1;" (assignment_expression "uVar16 = sVar17 + uVar19 >> 1" (identifier "uVar16") (= "=") (binary_expression "sVar17 + uVar19 >> 1" (binary_expression "sVar17 + uVar19" (identifier "sVar17") (+ "+") (identifier "uVar19")) (>> ">>") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);" (assignment_expression "puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8)" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)((int)local_78 + uVar16 * 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_78 + uVar16 * 8)" (( "(") (binary_expression "(int)local_78 + uVar16 * 8" (cast_expression "(int)local_78" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_78")) (+ "+") (binary_expression "uVar16 * 8" (identifier "uVar16") (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "iVar10 = strcmp(pcVar11,(char *)*puVar15);" (assignment_expression "iVar10 = strcmp(pcVar11,(char *)*puVar15)" (identifier "iVar10") (= "=") (call_expression "strcmp(pcVar11,(char *)*puVar15)" (identifier "strcmp") (argument_list "(pcVar11,(char *)*puVar15)" (( "(") (identifier "pcVar11") (, ",") (cast_expression "(char *)*puVar15" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) () ")")))) (; ";")) (if_statement "if (-1 < iVar10) break;" (if "if") (parenthesized_expression "(-1 < iVar10)" (( "(") (binary_expression "-1 < iVar10" (number_literal "-1") (< "<") (identifier "iVar10")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "sVar17 = uVar16;" (assignment_expression "sVar17 = uVar16" (identifier "sVar17") (= "=") (identifier "uVar16")) (; ";")) (if_statement "if (uVar16 <= uVar19) goto LAB_00065b08;" (if "if") (parenthesized_expression "(uVar16 <= uVar19)" (( "(") (binary_expression "uVar16 <= uVar19" (identifier "uVar16") (<= "<=") (identifier "uVar19")) () ")")) (goto_statement "goto LAB_00065b08;" (goto "goto") (statement_identifier "LAB_00065b08") (; ";"))) (} "}"))) (if_statement "if (iVar10 == 0) goto LAB_00065d30;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00065d30;" (goto "goto") (statement_identifier "LAB_00065d30") (; ";"))) (expression_statement "uVar19 = uVar16 + 1;" (assignment_expression "uVar19 = uVar16 + 1" (identifier "uVar19") (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (goto_statement "goto LAB_00065b08;" (goto "goto") (statement_identifier "LAB_00065b08") (; ";")) (} "}"))) (expression_statement "strcpy(__dest,(char *)*local_74);" (call_expression "strcpy(__dest,(char *)*local_74)" (identifier "strcpy") (argument_list "(__dest,(char *)*local_74)" (( "(") (identifier "__dest") (, ",") (cast_expression "(char *)*local_74" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_74" (* "*") (identifier "local_74"))) () ")"))) (; ";")) (expression_statement "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" (identifier "iVar10") (= "=") (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" (identifier "bfd_link_hash_lookup") (argument_list "(*(undefined4 *)(param_2 + 0x20),__dest,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 "__dest") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }" (if "if") (parenthesized_expression "((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01'))" (( "(") (binary_expression "(iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')" (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" (( "(") (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar10 + 0xc)" (* "*") (cast_expression "(char *)(iVar10 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")"))) () ")")) (compound_statement "{\nLAB_00065e00:\n              free(__dest);\n              goto LAB_00065c0f;\n            }" ({ "{") (labeled_statement "LAB_00065e00:\n              free(__dest);" (statement_identifier "LAB_00065e00") (: ":") (expression_statement "free(__dest);" (call_expression "free(__dest)" (identifier "free") (argument_list "(__dest)" (( "(") (identifier "__dest") () ")"))) (; ";"))) (goto_statement "goto LAB_00065c0f;" (goto "goto") (statement_identifier "LAB_00065c0f") (; ";")) (} "}"))) (expression_statement "sprintf(__dest,"%s%s","__imp_",*local_74);" (call_expression "sprintf(__dest,"%s%s","__imp_",*local_74)" (identifier "sprintf") (argument_list "(__dest,"%s%s","__imp_",*local_74)" (( "(") (identifier "__dest") (, ",") (string_literal ""%s%s"" (" """) (string_content "%s%s") (" """)) (, ",") (string_literal ""__imp_"" (" """) (string_content "__imp_") (" """)) (, ",") (pointer_expression "*local_74" (* "*") (identifier "local_74")) () ")"))) (; ";")) (expression_statement "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" (identifier "iVar10") (= "=") (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0)" (identifier "bfd_link_hash_lookup") (argument_list "(*(undefined4 *)(param_2 + 0x20),__dest,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 "__dest") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar10 != 0) {\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';\n              goto LAB_00065b1c;\n            }" ({ "{") (expression_statement "bVar20 = *(char *)(iVar10 + 0xc) == '\x01';" (assignment_expression "bVar20 = *(char *)(iVar10 + 0xc) == '\x01'" (identifier "bVar20") (= "=") (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar10 + 0xc)" (* "*") (cast_expression "(char *)(iVar10 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'")))) (; ";")) (goto_statement "goto LAB_00065b1c;" (goto "goto") (statement_identifier "LAB_00065b1c") (; ";")) (} "}"))) (labeled_statement "LAB_00065dc0:\n            free(__dest);" (statement_identifier "LAB_00065dc0") (: ":") (expression_statement "free(__dest);" (call_expression "free(__dest)" (identifier "free") (argument_list "(__dest)" (( "(") (identifier "__dest") () ")"))) (; ";"))) (goto_statement "goto LAB_00065b37;" (goto "goto") (statement_identifier "LAB_00065b37") (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_00065b8f;" (goto "goto") (statement_identifier "LAB_00065b8f") (; ";")) (} "}")))) (labeled_statement "LAB_000657df:\n    }\njoined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }" (statement_identifier "LAB_000657df") (: ":") (ERROR "}" (} "}")) (labeled_statement "joined_r0x00065bbb:\n    while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }" (statement_identifier "joined_r0x00065bbb") (: ":") (while_statement "while (__ptr = DAT_001d1224, sVar17 != 0) {\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }" (while "while") (parenthesized_expression "(__ptr = DAT_001d1224, sVar17 != 0)" (( "(") (comma_expression "__ptr = DAT_001d1224, sVar17 != 0" (assignment_expression "__ptr = DAT_001d1224" (identifier "__ptr") (= "=") (identifier "DAT_001d1224")) (, ",") (binary_expression "sVar17 != 0" (identifier "sVar17") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n      sVar17 = sVar17 - 1;\n      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);\n      DAT_001d1224 = pvVar6;\n      DAT_001d1228 = sVar17;\n      free((void *)*puVar15);\n      pvVar6 = DAT_001d1224;\n      DAT_001d1224 = __ptr;\n    }" ({ "{") (expression_statement "sVar17 = sVar17 - 1;" (assignment_expression "sVar17 = sVar17 - 1" (identifier "sVar17") (= "=") (binary_expression "sVar17 - 1" (identifier "sVar17") (- "-") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);" (assignment_expression "puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8)" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)((int)DAT_001d1224 + sVar17 * 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)DAT_001d1224 + sVar17 * 8)" (( "(") (binary_expression "(int)DAT_001d1224 + sVar17 * 8" (cast_expression "(int)DAT_001d1224" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_001d1224")) (+ "+") (binary_expression "sVar17 * 8" (identifier "sVar17") (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "DAT_001d1224 = pvVar6;" (assignment_expression "DAT_001d1224 = pvVar6" (identifier "DAT_001d1224") (= "=") (identifier "pvVar6")) (; ";")) (expression_statement "DAT_001d1228 = sVar17;" (assignment_expression "DAT_001d1228 = sVar17" (identifier "DAT_001d1228") (= "=") (identifier "sVar17")) (; ";")) (expression_statement "free((void *)*puVar15);" (call_expression "free((void *)*puVar15)" (identifier "free") (argument_list "((void *)*puVar15)" (( "(") (cast_expression "(void *)*puVar15" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) () ")"))) (; ";")) (expression_statement "pvVar6 = DAT_001d1224;" (assignment_expression "pvVar6 = DAT_001d1224" (identifier "pvVar6") (= "=") (identifier "DAT_001d1224")) (; ";")) (expression_statement "DAT_001d1224 = __ptr;" (assignment_expression "DAT_001d1224 = __ptr" (identifier "DAT_001d1224") (= "=") (identifier "__ptr")) (; ";")) (} "}"))))) (expression_statement "DAT_001d1224 = pvVar6;" (assignment_expression "DAT_001d1224 = pvVar6" (identifier "DAT_001d1224") (= "=") (identifier "pvVar6")) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (labeled_statement "LAB_00065d30:\n  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);" (statement_identifier "LAB_00065d30") (: ":") (expression_statement "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);" (assignment_expression "iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" (identifier "iVar10") (= "=") (call_expression "bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0)" (identifier "bfd_link_hash_lookup") (argument_list "(*(undefined4 *)(param_2 + 0x20),puVar15[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 "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";"))) (if_statement "if (*(char *)(iVar10 + 0xc) == '\x01') {\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }\n  else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }" (if "if") (parenthesized_expression "(*(char *)(iVar10 + 0xc) == '\x01')" (( "(") (binary_expression "*(char *)(iVar10 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar10 + 0xc)" (* "*") (cast_expression "(char *)(iVar10 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\nLAB_00065d58:\n    free(pcVar11);\n    free(__dest);\n  }" ({ "{") (labeled_statement "LAB_00065d58:\n    free(pcVar11);" (statement_identifier "LAB_00065d58") (: ":") (expression_statement "free(pcVar11);" (call_expression "free(pcVar11)" (identifier "free") (argument_list "(pcVar11)" (( "(") (identifier "pcVar11") () ")"))) (; ";"))) (expression_statement "free(__dest);" (call_expression "free(__dest)" (identifier "free") (argument_list "(__dest)" (( "(") (identifier "__dest") () ")"))) (; ";")) (} "}")) (else_clause "else {\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }" (else "else") (compound_statement "{\nLAB_00065b08:\n    free(pcVar11);\nLAB_00065b1c:\n    free(__dest);\n    if (!bVar20) goto LAB_00065b37;\n  }" ({ "{") (labeled_statement "LAB_00065b08:\n    free(pcVar11);" (statement_identifier "LAB_00065b08") (: ":") (expression_statement "free(pcVar11);" (call_expression "free(pcVar11)" (identifier "free") (argument_list "(pcVar11)" (( "(") (identifier "pcVar11") () ")"))) (; ";"))) (labeled_statement "LAB_00065b1c:\n    free(__dest);" (statement_identifier "LAB_00065b1c") (: ":") (expression_statement "free(__dest);" (call_expression "free(__dest)" (identifier "free") (argument_list "(__dest)" (( "(") (identifier "__dest") () ")"))) (; ";"))) (if_statement "if (!bVar20) goto LAB_00065b37;" (if "if") (parenthesized_expression "(!bVar20)" (( "(") (unary_expression "!bVar20" (! "!") (identifier "bVar20")) () ")")) (goto_statement "goto LAB_00065b37;" (goto "goto") (statement_identifier "LAB_00065b37") (; ";"))) (} "}")))) (labeled_statement "LAB_00065c0f:\n  if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }" (statement_identifier "LAB_00065c0f") (: ":") (if_statement "if (!bVar5) {\n    FUN_00063470();\n    FUN_00062700();\n  }" (if "if") (parenthesized_expression "(!bVar5)" (( "(") (unary_expression "!bVar5" (! "!") (identifier "bVar5")) () ")")) (compound_statement "{\n    FUN_00063470();\n    FUN_00062700();\n  }" ({ "{") (expression_statement "FUN_00063470();" (call_expression "FUN_00063470()" (identifier "FUN_00063470") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00062700();" (call_expression "FUN_00062700()" (identifier "FUN_00062700") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_00062c20();" (call_expression "FUN_00062c20()" (identifier "FUN_00062c20") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00062700();" (call_expression "FUN_00062700()" (identifier "FUN_00062700") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" (identifier "bVar5") (= "=") (true "true")) (; ";")) (labeled_statement "LAB_00065b37:\n  local_70 = local_70 + 1;" (statement_identifier "LAB_00065b37") (: ":") (expression_statement "local_70 = local_70 + 1;" (assignment_expression "local_70 = local_70 + 1" (identifier "local_70") (= "=") (binary_expression "local_70 + 1" (identifier "local_70") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (*(int *)(DAT_001d1218 + 0x38) <= local_70) goto LAB_00065b67;" (if "if") (parenthesized_expression "(*(int *)(DAT_001d1218 + 0x38) <= local_70)" (( "(") (binary_expression "*(int *)(DAT_001d1218 + 0x38) <= local_70" (pointer_expression "*(int *)(DAT_001d1218 + 0x38)" (* "*") (cast_expression "(int *)(DAT_001d1218 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d1218 + 0x38)" (( "(") (binary_expression "DAT_001d1218 + 0x38" (identifier "DAT_001d1218") (+ "+") (number_literal "0x38")) () ")")))) (<= "<=") (identifier "local_70")) () ")")) (goto_statement "goto LAB_00065b67;" (goto "goto") (statement_identifier "LAB_00065b67") (; ";"))) (expression_statement "local_74 = local_74 + 6;" (assignment_expression "local_74 = local_74 + 6" (identifier "local_74") (= "=") (binary_expression "local_74 + 6" (identifier "local_74") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "puVar15 = (undefined4 *)*local_64;" (assignment_expression "puVar15 = (undefined4 *)*local_64" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)*local_64" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_64" (* "*") (identifier "local_64")))) (; ";")) (expression_statement "local_64 = local_64 + 6;" (assignment_expression "local_64 = local_64 + 6" (identifier "local_64") (= "=") (binary_expression "local_64 + 6" (identifier "local_64") (+ "+") (number_literal "6"))) (; ";")) (if_statement "if (puVar15 != local_68) goto LAB_00065b67;" (if "if") (parenthesized_expression "(puVar15 != local_68)" (( "(") (binary_expression "puVar15 != local_68" (identifier "puVar15") (!= "!=") (identifier "local_68")) () ")")) (goto_statement "goto LAB_00065b67;" (goto "goto") (statement_identifier "LAB_00065b67") (; ";"))) (goto_statement "goto LAB_000658a0;" (goto "goto") (statement_identifier "LAB_000658a0") (; ";")) (labeled_statement "LAB_00065b67:\n  __ptr_00 = DAT_001d1238;" (statement_identifier "LAB_00065b67") (: ":") (expression_statement "__ptr_00 = DAT_001d1238;" (assignment_expression "__ptr_00 = DAT_001d1238" (identifier "__ptr_00") (= "=") (identifier "DAT_001d1238")) (; ";"))) (if_statement "if (bVar5) {\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }" (if "if") (parenthesized_expression "(bVar5)" (( "(") (identifier "bVar5") () ")")) (compound_statement "{\n    FUN_000637c0();\n    FUN_00062700();\n    __ptr_00 = DAT_001d1238;\n  }" ({ "{") (expression_statement "FUN_000637c0();" (call_expression "FUN_000637c0()" (identifier "FUN_000637c0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00062700();" (call_expression "FUN_00062700()" (identifier "FUN_00062700") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "__ptr_00 = DAT_001d1238;" (assignment_expression "__ptr_00 = DAT_001d1238" (identifier "__ptr_00") (= "=") (identifier "DAT_001d1238")) (; ";")) (} "}"))) (labeled_statement "LAB_00065b8f:\n  free(__ptr_00);" (statement_identifier "LAB_00065b8f") (: ":") (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" (identifier "free") (argument_list "(__ptr_00)" (( "(") (identifier "__ptr_00") () ")"))) (; ";"))) (expression_statement "local_68 = (undefined4 *)*local_68;" (assignment_expression "local_68 = (undefined4 *)*local_68" (identifier "local_68") (= "=") (cast_expression "(undefined4 *)*local_68" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_68" (* "*") (identifier "local_68")))) (; ";")) (expression_statement "pvVar6 = DAT_001d1224;" (assignment_expression "pvVar6 = DAT_001d1224" (identifier "pvVar6") (= "=") (identifier "DAT_001d1224")) (; ";")) (expression_statement "sVar17 = DAT_001d1228;" (assignment_expression "sVar17 = DAT_001d1228" (identifier "sVar17") (= "=") (identifier "DAT_001d1228")) (; ";")) (if_statement "if (local_68 == (undefined4 *)0x0) goto joined_r0x00065bbb;" (if "if") (parenthesized_expression "(local_68 == (undefined4 *)0x0)" (( "(") (binary_expression "local_68 == (undefined4 *)0x0" (identifier "local_68") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto joined_r0x00065bbb;" (goto "goto") (statement_identifier "joined_r0x00065bbb") (; ";"))) (goto_statement "goto LAB_000657a0;" (goto "goto") (statement_identifier "LAB_000657a0") (; ";")) (} "}"))) (} "")))

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

void function_1(type_1 *output_bfd,type_2 *linfo)

{
  char *pcVar1;
  type_3 *pkVar2;
  type_4 var_12;
  char var_17;
  type_5 *var_14;
  type_6 *var_10;
  bool bVar7;
  type_3 *var_31;
  type_7 *puVar9;
  type_6 **var_9;
  type_4 *__ptr;
  size_t var_16;
  char *__dest;
  char *var_22;
  char *var_25;
  char *var_26;
  type_1 *pbVar15;
  type_4 *var_13;
  type_3 *pkVar17;
  type_8 var_28;
  type_8 var_30;
  int var_21;
  type_8 var_33;
  type_8 var_27;
  bool bVar23;
  type_3 *var_34;
  type_5 *var_39;
  int var_8;
  type_6 *var_7;
  type_6 **var_40;
  type_9 exp;
  
  var_1(output_bfd->xvec->name);
  if (var_2 != (type_10 *)0x0) {
    var_14 = var_2->imports;
    pcVar1 = "";
    var_5 = 0;
    var_3(link_info.hash,pe_undef_count,"");
    var_35 = (type_3 *)var_4(var_5 << 3);
    var_5 = 0;
    var_3(link_info.hash,pe_undef_fill,"");
    var_6(var_35,var_5,8,undef_sort_cmp);
    puVar9 = PTR__sch_istable_001cefa0;
    for (var_7 = var_2->modules; var_31 = var_35, var_21 = var_5,
        var_7 != (type_6 *)0x0; var_7 = var_7->next) {
LAB_000657a0:
      if (0 < var_2->num_imports) {
        var_8 = 0;
        if (var_7 != var_14->module) {
          var_8 = 0;
          var_9 = &var_14[1].module;
          do {
            var_8 = var_8 + 1;
            if (var_8 == var_2->num_imports) goto LAB_000657df;
            var_10 = *var_9;
            var_9 = var_9 + 6;
          } while (var_10 != var_7);
        }
        dll_filename = var_7->name;
        __ptr = (type_4 *)var_11(dll_filename);
        var_12 = *__ptr;
        var_13 = __ptr;
        dll_symname = (char *)__ptr;
        while (var_12 != 0) {
          if ((puVar9[(type_8)var_12 * 2] & 0x8c) == 0) {
            *var_13 = 0x5f;
          }
          var_13 = var_13 + 1;
          var_12 = *var_13;
        }
        if ((var_8 < var_2->num_imports) &&
           (var_39 = var_14 + var_8, var_7 == var_39->module)) {
          var_40 = &var_14[var_8 + 1].module;
          bVar7 = false;
LAB_000658a0:
          var_17 = *var_39->internal_name;
          var_16 = var_15(var_39->internal_name);
          __dest = (char *)var_4(var_16 + 8);
          if (var_17 != '@') {
            var_25 = var_39->internal_name;
            var_22 = var_18(var_25,0x40);
            var_26 = "_";
            if (pe_details->underscored == 0) {
              var_26 = pcVar1;
            }
            var_19(__dest,"%s%s",var_26,var_25);
            var_21 = var_20(linfo->hash,__dest,0,0,0);
            if ((var_21 != 0) && (*(char *)(var_21 + 0xc) == '\x01')) {
              if (var_22 != (char *)0x0) goto LAB_00065e00;
              var_27 = 1;
              var_23(__dest);
              goto LAB_00065c0f;
            }
            var_25 = "_";
            if (pe_details->underscored == 0) {
              var_25 = pcVar1;
            }
            var_19(__dest,"%s%s%s","__imp_",var_25,var_39->internal_name);
            var_21 = var_20(linfo->hash,__dest,0,0,0);
            if (var_21 == 0) {
              bVar23 = false;
              if (var_22 != (char *)0x0) goto LAB_00065dc0;
            }
            else {
              bVar23 = *(char *)(var_21 + 0xc) == '\x01';
              if ((var_22 != (char *)0x0) || (*(char *)(var_21 + 0xc) == '\x01'))
              goto LAB_00065d23;
            }
            var_25 = "_";
            if (pe_details->underscored == 0) {
              var_25 = pcVar1;
            }
            var_19(__dest,"%s%s",var_25,var_39->internal_name);
            var_16 = var_15(__dest);
            var_25 = (char *)var_4(var_16 + 3);
            var_24(var_25,__dest);
            var_26 = var_18(var_25 + (*var_25 == '@'),0x40);
            if (var_26 != (char *)0x0) {
              var_26[1] = '\0';
            }
            var_31 = var_35;
            var_27 = 0;
            var_28 = var_5;
            while (var_27 < var_28) {
              while( true ) {
                var_30 = var_27 + var_28 >> 1;
                var_21 = var_29(var_25,var_31[var_30].key);
                if (-1 < var_21) break;
                var_28 = var_30;
                if (var_30 <= var_27) goto LAB_00065a75;
              }
              if (var_21 == 0) {
                var_21 = var_20(linfo->hash,var_31[var_30].oname,0,0,0);
                if (*(char *)(var_21 + 0xc) == '\x01') goto LAB_00065d58;
                break;
              }
              var_27 = var_30 + 1;
            }
LAB_00065a75:
            var_27 = var_5;
            var_31 = var_35;
            var_17 = *var_25;
            if (var_17 != '?') {
              var_34 = var_35;
              if (var_26 == (char *)0x0) {
                if (var_17 == '@') goto LAB_00065f40;
                var_16 = var_15(var_25);
                (var_25 + var_16)[0] = '@';
                (var_25 + var_16)[1] = '\0';
                var_28 = 0;
                while (var_28 < var_27) {
                  while( true ) {
                    var_30 = var_27 + var_28 >> 1;
                    pkVar17 = var_31 + var_30;
                    var_21 = var_29(var_25,pkVar17->key);
                    if (-1 < var_21) break;
                    var_27 = var_30;
                    if (var_30 <= var_28) goto LAB_00065e95;
                  }
                  if (var_21 == 0) {
                    var_21 = var_20(linfo->hash,pkVar17->oname,0,0,0);
                    if (*(char *)(var_21 + 0xc) == '\x01') goto LAB_00065d58;
                    var_17 = *var_25;
                    goto joined_r0x00066040;
                  }
                  var_28 = var_30 + 1;
                }
LAB_00065e95:
                var_17 = *var_25;
joined_r0x00066040:
                if ((var_17 == '_') && (pe_details->underscored != 0)) {
                  *var_25 = '@';
                }
                else {
                  var_32(var_25 + 1,var_25,var_16 + 2);
                  *var_25 = '@';
                }
                var_31 = var_35;
                var_27 = 0;
                var_28 = var_5;
                while (var_27 < var_28) {
                  while( true ) {
                    var_30 = var_28 + var_27 >> 1;
                    pkVar17 = var_31 + var_30;
                    var_21 = var_29(var_25,pkVar17->key);
                    if (-1 < var_21) break;
                    var_28 = var_30;
                    if (var_30 <= var_27) goto LAB_00065b08;
                  }
                  if (var_21 == 0) goto LAB_00065d30;
                  var_27 = var_30 + 1;
                }
              }
              else {
                if (var_17 == '@') {
LAB_00065f40:
                  if (pe_details->underscored == 0) {
                    var_24(var_25,var_25 + 1);
                  }
                  else {
                    *var_25 = '_';
                  }
                  var_28 = 0;
                  var_30 = var_27;
                  while (var_28 < var_30) {
                    while( true ) {
                      var_33 = var_30 + var_28 >> 1;
                      pkVar17 = var_31 + var_33;
                      var_21 = var_29(var_25,pkVar17->key);
                      if (-1 < var_21) break;
                      var_30 = var_33;
                      if (var_33 <= var_28) goto LAB_00065fad;
                    }
                    if (var_21 == 0) {
                      var_21 = var_20(linfo->hash,pkVar17->oname,0,0,0);
                      if (*(char *)(var_21 + 0xc) == '\x01') goto LAB_00065d58;
                      var_34 = var_35;
                      var_27 = var_5;
                      break;
                    }
                    var_28 = var_33 + 1;
                  }
LAB_00065fad:
                  if (var_26 != (char *)0x0) goto LAB_00065aa8;
                }
                else {
LAB_00065aa8:
                  var_26 = var_18(var_25,0x40);
                  *var_26 = '\0';
                }
                var_28 = 0;
                while (var_28 < var_27) {
                  while( true ) {
                    var_30 = var_27 + var_28 >> 1;
                    pkVar17 = var_34 + var_30;
                    var_21 = var_29(var_25,pkVar17->key);
                    if (-1 < var_21) break;
                    var_27 = var_30;
                    if (var_30 <= var_28) goto LAB_00065b08;
                  }
                  if (var_21 == 0) goto LAB_00065d30;
                  var_28 = var_30 + 1;
                }
              }
            }
            goto LAB_00065b08;
          }
          var_24(__dest,var_39->internal_name);
          var_21 = var_20(linfo->hash,__dest,0,0,0);
          if ((var_21 != 0) && (*(char *)(var_21 + 0xc) == '\x01')) {
LAB_00065e00:
            var_27 = 1;
            var_23(__dest);
            goto LAB_00065c0f;
          }
          var_19(__dest,"%s%s","__imp_",var_39->internal_name);
          var_21 = var_20(linfo->hash,__dest,0,0,0);
          if (var_21 != 0) {
            bVar23 = *(char *)(var_21 + 0xc) == '\x01';
LAB_00065d23:
            var_27 = 0;
            goto LAB_00065b1c;
          }
LAB_00065dc0:
          var_23(__dest);
          goto LAB_00065b37;
        }
        goto LAB_00065b8f;
      }
LAB_000657df:
    }
joined_r0x00065bbb:
    while (pkVar17 = var_35, var_21 != 0) {
      var_21 = var_21 + -1;
      pkVar2 = var_35 + var_21;
      var_35 = var_31;
      var_5 = var_21;
      var_23(pkVar2->key);
      var_31 = var_35;
      var_35 = pkVar17;
    }
    var_35 = var_31;
    var_23(pkVar17);
  }
  return;
LAB_00065d30:
  var_21 = var_20(linfo->hash,pkVar17->oname,0,0,0);
  if (*(char *)(var_21 + 0xc) == '\x01') {
LAB_00065d58:
    var_27 = 1;
    var_23(var_25);
    var_23(__dest);
  }
  else {
LAB_00065b08:
    var_27 = 1;
    var_23(var_25);
LAB_00065b1c:
    var_23(__dest);
    if (!bVar23) goto LAB_00065b37;
  }
LAB_00065c0f:
  if (!bVar7) {
    pbVar15 = var_36(output_bfd);
    var_37(pbVar15,pbVar15->filename,linfo);
  }
  exp.internal_name = var_39->internal_name;
  exp.name = var_39->name;
  exp.its_name = var_39->its_name;
  exp.ordinal = var_39->ordinal;
  exp.hint = exp.ordinal;
  if (exp.ordinal < 0) {
    exp.hint = 0;
  }
  exp.flag_noname = exp.name == (char *)0x0;
  exp.flag_private = '\0';
  exp.flag_constant = '\0';
  exp.flag_data = (char)var_39->data;
  pbVar15 = var_38(&exp,output_bfd,exp.flag_data == '\0' & var_27);
  var_37(pbVar15,pbVar15->filename,linfo);
  bVar7 = true;
LAB_00065b37:
  var_8 = var_8 + 1;
  if (var_2->num_imports <= var_8) goto LAB_00065b67;
  var_39 = var_39 + 1;
  var_10 = *var_40;
  var_40 = var_40 + 6;
  if (var_10 != var_7) goto LAB_00065b67;
  goto LAB_000658a0;
LAB_00065b67:
  __ptr = (type_4 *)dll_symname;
  if (bVar7) {
    pbVar15 = var_41(output_bfd);
    var_37(pbVar15,pbVar15->filename,linfo);
    __ptr = (type_4 *)dll_symname;
  }
LAB_00065b8f:
  var_23(__ptr);
  var_7 = var_7->next;
  var_31 = var_35;
  var_21 = var_5;
  if (var_7 == (type_6 *)0x0) goto joined_r0x00065bbb;
  goto LAB_000657a0;
}


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

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

void MASKED(int param_1,int param_2)

{
  char *pcVar1;
  byte bVar2;
  char cVar3;
  int iVar4;
  bool bVar5;
  void *pvVar6;
  undefined *puVar7;
  void *__ptr;
  int *piVar8;
  byte *__ptr_00;
  char *__dest;
  char *pcVar9;
  int iVar10;
  char *pcVar11;
  char *pcVar12;
  size_t sVar13;
  byte *pbVar14;
  undefined4 *puVar15;
  uint uVar16;
  size_t sVar17;
  uint uVar18;
  uint uVar19;
  bool bVar20;
  void *local_78;
  undefined4 *local_74;
  int local_70;
  undefined4 *local_68;
  undefined4 *local_64;
  
  FUN_00063a00(**(undefined4 **)(param_1 + 4));
  if (DAT_001d1218 != 0) {
    iVar4 = *(int *)(DAT_001d1218 + 0x3c);
    pcVar1 = "";
    DAT_001d1228 = 0;
    bfd_link_hash_traverse(DAT_001d1400,FUN_00062400,"");
    DAT_001d1224 = (void *)xmalloc(DAT_001d1228 << 3);
    DAT_001d1228 = 0;
    bfd_link_hash_traverse(DAT_001d1400,FUN_00062780,"");
    qsort(DAT_001d1224,DAT_001d1228,8,FUN_000616f0);
    puVar7 = PTR__sch_istable_001cefa0;
    for (local_68 = *(undefined4 **)(DAT_001d1218 + 0x34); pvVar6 = DAT_001d1224,
        sVar17 = DAT_001d1228, local_68 != (undefined4 *)0x0; local_68 = (undefined4 *)*local_68) {
LAB_000657a0:
      if (0 < *(int *)(DAT_001d1218 + 0x38)) {
        local_70 = 0;
        if (local_68 != *(undefined4 **)(iVar4 + 4)) {
          local_70 = 0;
          piVar8 = (int *)(iVar4 + 0x1c);
          do {
            local_70 = local_70 + 1;
            if (local_70 == *(int *)(DAT_001d1218 + 0x38)) goto LAB_000657df;
            puVar15 = (undefined4 *)*piVar8;
            piVar8 = piVar8 + 6;
          } while (puVar15 != local_68);
        }
        DAT_001d123c = local_68 + 2;
        __ptr_00 = (byte *)xstrdup(DAT_001d123c);
        bVar2 = *__ptr_00;
        pbVar14 = __ptr_00;
        DAT_001d1238 = __ptr_00;
        while (bVar2 != 0) {
          if ((puVar7[(uint)bVar2 * 2] & 0x8c) == 0) {
            *pbVar14 = 0x5f;
          }
          pbVar14 = pbVar14 + 1;
          bVar2 = *pbVar14;
        }
        if (local_70 < *(int *)(DAT_001d1218 + 0x38)) {
          local_74 = (undefined4 *)(iVar4 + local_70 * 0x18);
          if (local_68 == (undefined4 *)local_74[1]) {
            local_64 = (undefined4 *)(iVar4 + 0x1c + local_70 * 0x18);
            bVar5 = false;
LAB_000658a0:
            cVar3 = *(char *)*local_74;
            sVar17 = strlen((char *)*local_74);
            __dest = (char *)xmalloc(sVar17 + 8);
            if (cVar3 != '@') {
              pcVar11 = (char *)*local_74;
              pcVar9 = strchr(pcVar11,0x40);
              pcVar12 = "_";
              if (*(int *)(DAT_001d127c + 0x14) == 0) {
                pcVar12 = pcVar1;
              }
              sprintf(__dest,"%s%s",pcVar12,pcVar11);
              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);
              if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {
                if (pcVar9 != (char *)0x0) goto LAB_00065e00;
                free(__dest);
                goto LAB_00065c0f;
              }
              pcVar11 = "_";
              if (*(int *)(DAT_001d127c + 0x14) == 0) {
                pcVar11 = pcVar1;
              }
              sprintf(__dest,"%s%s%s","__imp_",pcVar11,*local_74);
              iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);
              if (iVar10 == 0) {
                bVar20 = false;
                if (pcVar9 != (char *)0x0) goto LAB_00065dc0;
              }
              else {
                bVar20 = *(char *)(iVar10 + 0xc) == '\x01';
                if ((pcVar9 != (char *)0x0) || (*(char *)(iVar10 + 0xc) == '\x01'))
                goto LAB_00065b1c;
              }
              pcVar11 = "_";
              if (*(int *)(DAT_001d127c + 0x14) == 0) {
                pcVar11 = pcVar1;
              }
              sprintf(__dest,"%s%s",pcVar11,*local_74);
              sVar17 = strlen(__dest);
              pcVar11 = (char *)xmalloc(sVar17 + 3);
              strcpy(pcVar11,__dest);
              pcVar12 = strchr(pcVar11 + (*pcVar11 == '@'),0x40);
              if (pcVar12 != (char *)0x0) {
                pcVar12[1] = '\0';
              }
              pvVar6 = DAT_001d1224;
              uVar19 = 0;
              sVar17 = DAT_001d1228;
              while (uVar19 < sVar17) {
                while( true ) {
                  uVar16 = uVar19 + sVar17 >> 1;
                  puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);
                  iVar10 = strcmp(pcVar11,(char *)*puVar15);
                  if (-1 < iVar10) break;
                  sVar17 = uVar16;
                  if (uVar16 <= uVar19) goto LAB_00065a75;
                }
                if (iVar10 == 0) {
                  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);
                  if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;
                  break;
                }
                uVar19 = uVar16 + 1;
              }
LAB_00065a75:
              sVar17 = DAT_001d1228;
              pvVar6 = DAT_001d1224;
              cVar3 = *pcVar11;
              if (cVar3 != '?') {
                local_78 = DAT_001d1224;
                if (pcVar12 == (char *)0x0) {
                  if (cVar3 == '@') goto LAB_00065f40;
                  sVar13 = strlen(pcVar11);
                  (pcVar11 + sVar13)[0] = '@';
                  (pcVar11 + sVar13)[1] = '\0';
                  uVar19 = 0;
                  while (uVar19 < sVar17) {
                    while( true ) {
                      uVar16 = sVar17 + uVar19 >> 1;
                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);
                      iVar10 = strcmp(pcVar11,(char *)*puVar15);
                      if (-1 < iVar10) break;
                      sVar17 = uVar16;
                      if (uVar16 <= uVar19) goto LAB_00065e95;
                    }
                    if (iVar10 == 0) {
                      iVar10 = bfd_link_hash_lookup
                                         (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);
                      if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;
                      cVar3 = *pcVar11;
                      goto joined_r0x00066040;
                    }
                    uVar19 = uVar16 + 1;
                  }
LAB_00065e95:
                  cVar3 = *pcVar11;
joined_r0x00066040:
                  if ((cVar3 == '_') && (*(int *)(DAT_001d127c + 0x14) != 0)) {
                    *pcVar11 = '@';
                  }
                  else {
                    memmove(pcVar11 + 1,pcVar11,sVar13 + 2);
                    *pcVar11 = '@';
                  }
                  pvVar6 = DAT_001d1224;
                  uVar19 = 0;
                  sVar17 = DAT_001d1228;
                  while (uVar19 < sVar17) {
                    while( true ) {
                      uVar16 = sVar17 + uVar19 >> 1;
                      puVar15 = (undefined4 *)((int)pvVar6 + uVar16 * 8);
                      iVar10 = strcmp(pcVar11,(char *)*puVar15);
                      if (-1 < iVar10) break;
                      sVar17 = uVar16;
                      if (uVar16 <= uVar19) goto LAB_00065b08;
                    }
                    if (iVar10 == 0) goto LAB_00065d30;
                    uVar19 = uVar16 + 1;
                  }
                }
                else {
                  if (cVar3 == '@') {
LAB_00065f40:
                    if (*(int *)(DAT_001d127c + 0x14) == 0) {
                      strcpy(pcVar11,pcVar11 + 1);
                    }
                    else {
                      *pcVar11 = '_';
                    }
                    uVar19 = 0;
                    uVar16 = sVar17;
                    while (uVar19 < uVar16) {
                      while( true ) {
                        uVar18 = uVar16 + uVar19 >> 1;
                        puVar15 = (undefined4 *)((int)pvVar6 + uVar18 * 8);
                        iVar10 = strcmp(pcVar11,(char *)*puVar15);
                        if (-1 < iVar10) break;
                        uVar16 = uVar18;
                        if (uVar18 <= uVar19) goto LAB_00065fad;
                      }
                      if (iVar10 == 0) {
                        iVar10 = bfd_link_hash_lookup
                                           (*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);
                        if (*(char *)(iVar10 + 0xc) == '\x01') goto LAB_00065d58;
                        local_78 = DAT_001d1224;
                        sVar17 = DAT_001d1228;
                        break;
                      }
                      uVar19 = uVar18 + 1;
                    }
LAB_00065fad:
                    if (pcVar12 != (char *)0x0) goto LAB_00065aa8;
                  }
                  else {
LAB_00065aa8:
                    pcVar12 = strchr(pcVar11,0x40);
                    *pcVar12 = '\0';
                  }
                  uVar19 = 0;
                  while (uVar19 < sVar17) {
                    while( true ) {
                      uVar16 = sVar17 + uVar19 >> 1;
                      puVar15 = (undefined4 *)((int)local_78 + uVar16 * 8);
                      iVar10 = strcmp(pcVar11,(char *)*puVar15);
                      if (-1 < iVar10) break;
                      sVar17 = uVar16;
                      if (uVar16 <= uVar19) goto LAB_00065b08;
                    }
                    if (iVar10 == 0) goto LAB_00065d30;
                    uVar19 = uVar16 + 1;
                  }
                }
              }
              goto LAB_00065b08;
            }
            strcpy(__dest,(char *)*local_74);
            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);
            if ((iVar10 != 0) && (*(char *)(iVar10 + 0xc) == '\x01')) {
LAB_00065e00:
              free(__dest);
              goto LAB_00065c0f;
            }
            sprintf(__dest,"%s%s","__imp_",*local_74);
            iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),__dest,0,0,0);
            if (iVar10 != 0) {
              bVar20 = *(char *)(iVar10 + 0xc) == '\x01';
              goto LAB_00065b1c;
            }
LAB_00065dc0:
            free(__dest);
            goto LAB_00065b37;
          }
        }
        goto LAB_00065b8f;
      }
LAB_000657df:
    }
joined_r0x00065bbb:
    while (__ptr = DAT_001d1224, sVar17 != 0) {
      sVar17 = sVar17 - 1;
      puVar15 = (undefined4 *)((int)DAT_001d1224 + sVar17 * 8);
      DAT_001d1224 = pvVar6;
      DAT_001d1228 = sVar17;
      free((void *)*puVar15);
      pvVar6 = DAT_001d1224;
      DAT_001d1224 = __ptr;
    }
    DAT_001d1224 = pvVar6;
    free(__ptr);
  }
  return;
LAB_00065d30:
  iVar10 = bfd_link_hash_lookup(*(undefined4 *)(param_2 + 0x20),puVar15[1],0,0,0);
  if (*(char *)(iVar10 + 0xc) == '\x01') {
LAB_00065d58:
    free(pcVar11);
    free(__dest);
  }
  else {
LAB_00065b08:
    free(pcVar11);
LAB_00065b1c:
    free(__dest);
    if (!bVar20) goto LAB_00065b37;
  }
LAB_00065c0f:
  if (!bVar5) {
    FUN_00063470();
    FUN_00062700();
  }
  FUN_00062c20();
  FUN_00062700();
  bVar5 = true;
LAB_00065b37:
  local_70 = local_70 + 1;
  if (*(int *)(DAT_001d1218 + 0x38) <= local_70) goto LAB_00065b67;
  local_74 = local_74 + 6;
  puVar15 = (undefined4 *)*local_64;
  local_64 = local_64 + 6;
  if (puVar15 != local_68) goto LAB_00065b67;
  goto LAB_000658a0;
LAB_00065b67:
  __ptr_00 = DAT_001d1238;
  if (bVar5) {
    FUN_000637c0();
    FUN_00062700();
    __ptr_00 = DAT_001d1238;
  }
LAB_00065b8f:
  free(__ptr_00);
  local_68 = (undefined4 *)*local_68;
  pvVar6 = DAT_001d1224;
  sVar17 = DAT_001d1228;
  if (local_68 == (undefined4 *)0x0) goto joined_r0x00065bbb;
  goto LAB_000657a0;
}

