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

void gldaarch64elf_after_open(void)

{
  int *piVar1;
  output_elf_obj_tdata *poVar2;
  bfd_link_needed_list **ppbVar3;
  bfd_link_needed_list *pbVar4;
  bfd_link_hash_table *pbVar5;
  asection *paVar6;
  bfd_link_needed_list *pbVar7;
  uint uVar8;
  int iVar9;
  bfd_boolean bVar10;
  char *pcVar11;
  size_t sVar12;
  bfd *pbVar13;
  char *pcVar14;
  size_t sVar15;
  size_t sVar16;
  char *pcVar17;
  byte *pbVar18;
  char *pcVar19;
  char *pcVar20;
  bfd_link_hash_entry *pbVar21;
  byte bVar22;
  bfd *pbVar23;
  bfd_section *pbVar24;
  byte *pbVar25;
  search_dirs *psVar26;
  size_t sVar27;
  byte *pbVar28;
  char *pcVar29;
  bool bVar30;
  bool bVar31;
  bool bVar32;
  bool bVar33;
  byte bVar34;
  bfd_size_type bVar35;
  char *local_84;
  bfd_link_needed_list *local_78;
  bfd *local_74;
  char *local_68;
  dt_needed *local_64;
  dt_needed n;
  dt_needed nn;
  dt_needed needed;
  
  bVar34 = 0;
  after_open_default();
  pbVar5 = link_info.hash;
  if ((link_info.hash)->type == bfd_link_elf_hash_table) {
    if (command_line.out_implib_filename != (char *)0x0) {
      unlink_if_ordinary(command_line.out_implib_filename);
      link_info.out_implib_bfd =
           (bfd *)bfd_openw(command_line.out_implib_filename,(link_info.output_bfd)->xvec->name);
      pcVar11 = command_line.out_implib_filename;
      if (link_info.out_implib_bfd == (bfd *)0x0) {
        pcVar20 = (char *)dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);
        einfo(pcVar20,pcVar11);
      }
    }
    pbVar23 = link_info.output_bfd;
    pbVar13 = link_info.input_bfds;
    if (emit_note_gnu_build_id != (char *)0x0) {
      for (; pbVar13 != (bfd *)0x0; pbVar13 = (pbVar13->link).next) {
        if (((pbVar13->xvec->flavour == bfd_target_elf_flavour) && (pbVar13->section_count != 0)) &&
           ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) == 0)) {
          bVar35 = compute_build_id_size(emit_note_gnu_build_id);
          if ((bVar35 == 0) || (bVar35 + 0x10 == 0)) {
            pcVar11 = "%P: warning: unrecognized --build-id style ignored\n";
          }
          else {
            paVar6 = (asection *)
                     bfd_make_section_with_flags
                               (pbVar13,".note.gnu.build-id",
                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */
                               );
            if (paVar6 != (asection *)0x0) {
              paVar6->alignment_power = 2;
              pbVar23 = link_info.output_bfd;
              poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o;
              (poVar2->build_id).after_write_object_contents = write_build_id;
              pcVar11 = emit_note_gnu_build_id;
              (poVar2->build_id).sec = paVar6;
              (poVar2->build_id).style = pcVar11;
              *(undefined4 *)((int)paVar6->used_by_bfd + 4) = 7;
              paVar6->size = bVar35 + 0x10;
              goto LAB_00040754;
            }
            pcVar11 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";
          }
          pcVar11 = (char *)dcgettext(0,pcVar11,5);
          einfo(pcVar11);
          break;
        }
      }
      free(emit_note_gnu_build_id);
      emit_note_gnu_build_id = (char *)0x0;
      pbVar23 = link_info.output_bfd;
    }
LAB_00040754:
    (**(code **)((int)pbVar23->xvec->backend_data + 0x1d0))(&link_info);
    if ((link_info._0_1_ & 3) == 2) {
      if ((byte)link_info._5_1_ >> 7 == (~link_info._6_1_ & 1)) {
        bfd_make_section_with_flags
                  (link_info.input_bfds,".note.GNU-stack",(byte)link_info._5_1_ >> 3 & 0x10 | 8);
      }
    }
    else {
      if (((link_info._4_1_ & 0x20) == 0) && (link_info.input_bfds != (bfd *)0x0)) {
        local_78 = (bfd_link_needed_list *)0x0;
        bVar31 = false;
        local_74 = (bfd *)0x0;
        pbVar13 = link_info.input_bfds;
        do {
          while ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) != 0) {
LAB_00040ee8:
            pbVar13 = (pbVar13->link).next;
            if (pbVar13 == (bfd *)0x0) goto LAB_00040fe6;
          }
          pbVar24 = pbVar13->sections;
          if (pbVar24 != (bfd_section *)0x0) {
            local_84 = (char *)0x0;
            do {
              bVar33 = pbVar24->output_section <
                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);
              bVar30 = pbVar24->output_section ==
                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);
              pcVar11 = local_84;
              if (!bVar30) {
                iVar9 = 0xf;
                pbVar18 = (byte *)pbVar24->name;
                pbVar25 = (byte *)".eh_frame_entry";
                do {
                  if (iVar9 == 0) break;
                  iVar9 = iVar9 + -1;
                  bVar33 = *pbVar18 < *pbVar25;
                  bVar30 = *pbVar18 == *pbVar25;
                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;
                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;
                } while (bVar30);
                bVar32 = false;
                bVar33 = (!bVar33 && !bVar30) == bVar33;
                if (bVar33) {
                  local_84 = (char *)0x2;
                  goto LAB_00040f91;
                }
                iVar9 = 10;
                pbVar18 = (byte *)pbVar24->name;
                pbVar25 = (byte *)".eh_frame";
                do {
                  if (iVar9 == 0) break;
                  iVar9 = iVar9 + -1;
                  bVar32 = *pbVar18 < *pbVar25;
                  bVar33 = *pbVar18 == *pbVar25;
                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;
                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;
                } while (bVar33);
                if (((!bVar32 && !bVar33) == bVar32) &&
                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,
                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {
                  pcVar11 = local_84;
                }
              }
              local_84 = pcVar11;
              pbVar24 = pbVar24->next;
            } while (pbVar24 != (bfd_section *)0x0);
            if (local_84 != (char *)0x0) {
LAB_00040f91:
              pbVar7 = (bfd_link_needed_list *)local_84;
              if ((local_78 != (bfd_link_needed_list *)0x0) &&
                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)) {
                if (local_84 != (char *)0x1) {
                  pbVar13 = local_74;
                }
                pcVar11 = (char *)dcgettext(0,
                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"
                                            ,5);
                einfo(pcVar11,pbVar13);
                break;
              }
              local_78 = pbVar7;
              if ((local_74 == (bfd *)0x0) &&
                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&
                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))) {
                local_74 = pbVar13;
              }
            }
          }
          if (local_78 != (bfd_link_needed_list *)0x2) goto LAB_00040ee8;
          pbVar13 = (pbVar13->link).next;
          link_info._2_2_ = link_info._2_2_ & 0x3fff | 0x8000;
        } while (pbVar13 != (bfd *)0x0);
LAB_00040fe6:
        if ((local_74 == (bfd *)0x0) ||
           (pbVar21 = (bfd_link_hash_entry *)
                      bfd_make_section_with_flags
                                (local_74,".eh_frame_hdr",
                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8),
           pbVar21 == (bfd_link_hash_entry *)0x0)) {
          if (bVar31) {
            pcVar11 = (char *)dcgettext(0,
                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"
                                        ,5);
            einfo(pcVar11);
          }
        }
        else {
          pbVar21[2].u.i.warning = (char *)0x2;
          pbVar5[4].undefs_tail = pbVar21;
        }
      }
      pbVar7 = (bfd_link_needed_list *)bfd_elf_get_needed_list(link_info.output_bfd,&link_info);
      local_78 = pbVar7;
      if (pbVar7 != (bfd_link_needed_list *)0x0) {
LAB_000407c0:
        pbVar4 = pbVar7;
        if ((local_78->by == (bfd *)0x0) ||
           ((uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 1) == 0 &&
            (((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||
             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0)))))) {
          for (; pbVar4 != local_78; pbVar4 = pbVar4->next) {
            if (((pbVar4->by == (bfd *)0x0) ||
                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)) &&
               (iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0)) {
              if (pbVar4 != local_78) goto LAB_00040900;
              break;
            }
          }
          global_found = (lang_input_statement_type *)0x0;
          global_needed = local_78;
          real_func = gldaarch64elf_check_needed;
          lang_for_each_input_file(aarch64_for_each_input_file_wrapper);
          if ((global_found == (lang_input_statement_type *)0x0) ||
             (uVar8 = bfd_elf_get_dyn_lib_class(global_found->the_bfd), (uVar8 & 1) != 0)) {
            pbVar13 = local_78->by;
            pcVar11 = local_78->name;
            n.by = pbVar13;
            n.name = pcVar11;
            nn.by = pbVar13;
            if (verbose != 0) {
              pcVar20 = (char *)dcgettext(0,"%s needed by %pB\n",5);
              info_msg(pcVar20,pcVar11,pbVar13);
            }
            if (global_found == (lang_input_statement_type *)0x0) {
LAB_00040998:
              local_64 = (dt_needed *)0x0;
              do {
                pcVar20 = n.name;
                pcVar11 = command_line.rpath_link;
                if (*n.name == '/') {
                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);
                  if (bVar10 != 0) goto LAB_00040900;
                }
                else if ((command_line.rpath_link != (char *)0x0) &&
                        (*command_line.rpath_link != '\0')) {
                  needed.by = n.by;
                  needed.name = n.name;
                  sVar12 = strlen(n.name);
                  do {
                    local_68 = strchr(pcVar11,(int)config.rpath_separator);
                    if (local_68 == (char *)0x0) {
                      sVar27 = strlen(pcVar11);
                      local_68 = pcVar11 + sVar27;
                    }
                    sVar27 = (int)local_68 - (int)pcVar11;
                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);
                    pcVar17 = local_84;
                    if (pcVar11 != local_68) {
                      memcpy(local_84,pcVar11,sVar27);
                      local_84[sVar27] = '/';
                      pcVar17 = local_84 + sVar27 + 1;
                    }
                    pcVar11 = (char *)0x0;
                    strcpy(pcVar17,pcVar20);
                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {
                      pcVar17 = strchr(pcVar11,0x2f);
                      sVar27 = strlen(local_84);
                      if (pcVar17 != (char *)0x0) {
                        *pcVar17 = '\0';
                      }
                      bVar22 = pcVar11[1];
                      pcVar19 = pcVar11 + 1;
                      if (bVar22 == 0x7b) {
                        bVar22 = pcVar11[2];
                        pcVar19 = pcVar11 + 2;
                      }
                      pbVar18 = (byte *)(pcVar19 + 1);
                      bVar31 = bVar22 < 0x4c;
                      bVar33 = bVar22 == 0x4c;
                      if (bVar33) {
                        iVar9 = 3;
                        pbVar25 = pbVar18;
                        pbVar28 = (byte *)0x701f6;
                        do {
                          if (iVar9 == 0) break;
                          iVar9 = iVar9 + -1;
                          bVar31 = *pbVar25 < *pbVar28;
                          bVar33 = *pbVar25 == *pbVar28;
                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;
                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;
                        } while (bVar33);
                        bVar30 = false;
                        bVar31 = (!bVar31 && !bVar33) == bVar31;
                        if (!bVar31) {
                          iVar9 = 4;
                          pbVar25 = &DAT_000af890;
                          do {
                            if (iVar9 == 0) break;
                            iVar9 = iVar9 + -1;
                            bVar30 = *pbVar18 < *pbVar25;
                            bVar31 = *pbVar18 == *pbVar25;
                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;
                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;
                          } while (bVar31);
                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;
                        }
                        sVar15 = 5;
                        pcVar29 = (char *)0x0;
                        pcVar19 = "lib64";
LAB_00040b60:
                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);
                        iVar9 = (int)pcVar11 - (int)local_84;
                        if (pcVar17 == (char *)0x0) {
                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);
                          sVar27 = strlen(pcVar19);
                          pcVar11 = (char *)(iVar9 + sVar27);
                        }
                        else {
                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);
                          sVar27 = strlen(pcVar19);
                          pcVar11 = (char *)(iVar9 + 1 + sVar27);
                        }
                        free(local_84);
                        local_84 = pcVar14;
                      }
                      else {
                        bVar31 = bVar22 < 0x4f;
                        bVar33 = bVar22 == 0x4f;
                        if (bVar33) {
                          iVar9 = 6;
                          pbVar25 = pbVar18;
                          pbVar28 = (byte *)0x704cc;
                          do {
                            if (iVar9 == 0) break;
                            iVar9 = iVar9 + -1;
                            bVar31 = *pbVar25 < *pbVar28;
                            bVar33 = *pbVar25 == *pbVar28;
                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;
                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;
                          } while (bVar33);
                          bVar30 = false;
                          bVar31 = (!bVar31 && !bVar33) == bVar31;
                          if (!bVar31) {
                            iVar9 = 7;
                            pbVar25 = (byte *)"RIGIN}";
                            do {
                              if (iVar9 == 0) break;
                              iVar9 = iVar9 + -1;
                              bVar30 = *pbVar18 < *pbVar25;
                              bVar31 = *pbVar18 == *pbVar25;
                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;
                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;
                            } while (bVar31);
                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;
                          }
                          pbVar13 = needed.by;
                          if (((needed.by != (bfd *)0x0) ||
                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))
                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {
                            if (*pcVar29 == '/') {
                              pcVar19 = (char *)xstrdup(pcVar29);
                            }
                            else {
                              pcVar14 = (char *)getpwd();
                              sVar15 = strlen(pcVar29);
                              sVar16 = strlen(pcVar14);
                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);
                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);
                            }
                            pcVar29 = strrchr(pcVar19,0x2f);
                            if (pcVar29 != (char *)0x0) {
                              *pcVar29 = '\0';
                            }
                            sVar15 = strlen(pcVar19);
                            pcVar29 = pcVar19;
                            goto LAB_00040b60;
                          }
                        }
LAB_00040c47:
                        if (verbose != 0) {
                          pcVar19 = (char *)dcgettext(0,
                                                  "unrecognised or unsupported token \'%s\' in search path\n"
                                                  ,5);
                          info_msg(pcVar19,pcVar11);
                        }
                        if (pcVar17 != (char *)0x0) {
                          *pcVar17 = '/';
                        }
                        pcVar29 = (char *)0x0;
                        pcVar11 = pcVar11 + (1 - (int)local_84);
                      }
                      free(pcVar29);
                    }
                    needed.name = local_84;
                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);
                    if (bVar10 != 0) goto LAB_00040900;
                    free(local_84);
                    if (*local_68 == '\0') break;
                    pcVar11 = local_68 + 1;
                  } while( true );
                }
                sVar12 = strlen(local_78->name);
                if (search_head != (search_dirs_type *)0x0) {
                  psVar26 = search_head;
                  do {
                    if (psVar26->cmdline == 0) {
                      sVar27 = strlen(psVar26->name);
                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);
                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);
                      nn.name = pcVar11;
                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);
                      if (bVar10 != 0) goto LAB_00040900;
                      free(pcVar11);
                    }
                    psVar26 = psVar26->next;
                  } while (psVar26 != (search_dirs *)0x0);
                }
                if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;
                local_64 = (dt_needed *)0x1;
              } while( true );
            }
            nn.name = global_found->filename;
            bVar10 = gldaarch64elf_try_needed(&nn,(int)nn.name,(dt_needed *)0x1);
            if (bVar10 == 0) goto LAB_00040998;
          }
        }
        goto LAB_00040900;
      }
LAB_00040912:
      if (((link_info._3_1_ & 0xc0) == 0x80) &&
         (iVar9 = bfd_elf_parse_eh_frame_entries(0,&link_info), iVar9 == 0)) {
        pcVar11 = (char *)dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);
        einfo(pcVar11);
      }
    }
  }
  return;
code_r0x00040e73:
  pbVar13 = local_78->by;
  pcVar11 = local_78->name;
  pcVar20 = (char *)dcgettext(0,
                              "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"
                              ,5);
  einfo(pcVar20,pcVar11,pbVar13);
LAB_00040900:
  ppbVar3 = &local_78->next;
  local_78 = *ppbVar3;
  if (*ppbVar3 == (bfd_link_needed_list *)0x0) goto LAB_00040912;
  goto LAB_000407c0;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_00040580(void)

{
  undefined4 *puVar1;
  undefined4 uVar2;
  bool bVar3;
  void *pvVar4;
  char *pcVar5;
  undefined4 *puVar6;
  uint uVar7;
  int iVar8;
  undefined4 uVar9;
  size_t sVar10;
  undefined4 *puVar11;
  char *pcVar12;
  size_t sVar13;
  size_t sVar14;
  char *pcVar15;
  char *pcVar16;
  byte *pbVar17;
  undefined4 uVar18;
  int iVar19;
  byte bVar20;
  int iVar21;
  char *pcVar22;
  byte *pbVar23;
  int *piVar24;
  size_t sVar25;
  byte *pbVar26;
  char *pcVar27;
  bool bVar28;
  bool bVar29;
  bool bVar30;
  byte bVar31;
  longlong lVar32;
  char *local_84;
  undefined4 *local_78;
  int local_74;
  char *local_68;
  
  bVar31 = 0;
  FUN_000339e0();
  iVar8 = DAT_001c4600;
  if (*(int *)(DAT_001c4600 + 0x28) == 1) {
    if (DAT_001c46a0 != 0) {
      unlink_if_ordinary(DAT_001c46a0);
      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);
      iVar19 = DAT_001c46a0;
      if (DAT_001c4618 == 0) {
        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);
        FUN_00034dc0(uVar9,iVar19);
      }
    }
    puVar6 = DAT_001c4614;
    iVar19 = DAT_001c461c;
    if (DAT_001c3be4 != (void *)0x0) {
      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {
        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&
           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {
          lVar32 = FUN_00038a90(DAT_001c3be4);
          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {
            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";
          }
          else {
            iVar19 = bfd_make_section_with_flags
                               (iVar19,".note.gnu.build-id",
                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */
                               );
            if (iVar19 != 0) {
              *(undefined4 *)(iVar19 + 0x58) = 2;
              puVar6 = DAT_001c4614;
              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);
              *(code **)(iVar21 + 0x10) = FUN_0003f390;
              pvVar4 = DAT_001c3be4;
              *(int *)(iVar21 + 0x18) = iVar19;
              *(void **)(iVar21 + 0x14) = pvVar4;
              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;
              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;
              goto LAB_00040754;
            }
            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";
          }
          uVar9 = dcgettext(0,pcVar5,5);
          FUN_00034dc0(uVar9);
          break;
        }
      }
      free(DAT_001c3be4);
      DAT_001c3be4 = (void *)0x0;
      puVar6 = DAT_001c4614;
    }
LAB_00040754:
    (**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);
    if ((DAT_001c45e0 & 3) == 2) {
      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {
        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);
      }
    }
    else {
      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {
        local_78 = (undefined4 *)0x0;
        bVar3 = false;
        local_74 = 0;
        iVar19 = DAT_001c461c;
        do {
          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {
LAB_00040ee8:
            iVar19 = *(int *)(iVar19 + 0x9c);
            if (iVar19 == 0) goto LAB_00040fe6;
          }
          puVar6 = *(undefined4 **)(iVar19 + 0x60);
          if (puVar6 != (undefined4 *)0x0) {
            local_84 = (char *)0x0;
            do {
              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;
              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;
              pcVar5 = local_84;
              if (!bVar30) {
                iVar21 = 0xf;
                pbVar17 = (byte *)*puVar6;
                pbVar23 = (byte *)".eh_frame_entry";
                do {
                  if (iVar21 == 0) break;
                  iVar21 = iVar21 + -1;
                  bVar29 = *pbVar17 < *pbVar23;
                  bVar30 = *pbVar17 == *pbVar23;
                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;
                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;
                } while (bVar30);
                bVar28 = false;
                bVar29 = (!bVar29 && !bVar30) == bVar29;
                if (bVar29) {
                  local_84 = (char *)0x2;
                  goto LAB_00040f91;
                }
                iVar21 = 10;
                pbVar17 = (byte *)*puVar6;
                pbVar23 = (byte *)".eh_frame";
                do {
                  if (iVar21 == 0) break;
                  iVar21 = iVar21 + -1;
                  bVar28 = *pbVar17 < *pbVar23;
                  bVar29 = *pbVar17 == *pbVar23;
                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;
                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;
                } while (bVar29);
                if (((!bVar28 && !bVar29) == bVar28) &&
                   (pcVar5 = (char *)1,
                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {
                  pcVar5 = local_84;
                }
              }
              local_84 = pcVar5;
              puVar6 = (undefined4 *)puVar6[3];
            } while (puVar6 != (undefined4 *)0x0);
            if (local_84 != (char *)0x0) {
LAB_00040f91:
              pcVar5 = local_84;
              if ((local_78 != (undefined4 *)0x0) &&
                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {
                if (local_84 != (char *)0x1) {
                  iVar19 = local_74;
                }
                uVar9 = dcgettext(0,
                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"
                                  ,5);
                FUN_00034dc0(uVar9,iVar19);
                break;
              }
              local_78 = (undefined4 *)pcVar5;
              if ((local_74 == 0) &&
                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&
                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {
                local_74 = iVar19;
              }
            }
          }
          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;
          iVar19 = *(int *)(iVar19 + 0x9c);
          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;
        } while (iVar19 != 0);
LAB_00040fe6:
        if ((local_74 == 0) ||
           (iVar19 = bfd_make_section_with_flags
                               (local_74,".eh_frame_hdr",
                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),
           iVar19 == 0)) {
          if (bVar3) {
            uVar9 = dcgettext(0,
                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"
                              ,5);
            FUN_00034dc0(uVar9);
          }
        }
        else {
          *(undefined4 *)(iVar19 + 0x58) = 2;
          *(int *)(iVar8 + 0xd0) = iVar19;
        }
      }
      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);
      local_78 = puVar6;
      if (puVar6 != (undefined4 *)0x0) {
LAB_000407c0:
        puVar1 = puVar6;
        if ((local_78[1] == 0) ||
           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&
            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||
             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {
          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {
            if (((puVar1[1] == 0) ||
                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&
               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {
              if (puVar1 != local_78) goto LAB_00040900;
              break;
            }
          }
          DAT_001c3bf8 = 0;
          DAT_001c3c60 = local_78;
          DAT_001c3c64 = FUN_00040150;
          FUN_000276c0(FUN_0003d480);
          if ((DAT_001c3bf8 == 0) ||
             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),
             (uVar7 & 1) != 0)) {
            puVar1 = (undefined4 *)local_78[1];
            pcVar5 = (char *)local_78[2];
            if (DAT_001c475c != 0) {
              uVar9 = dcgettext(0,"%s needed by %pB\n",5);
              FUN_00034d90(uVar9,pcVar5,puVar1);
            }
            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {
              bVar3 = false;
              do {
                pcVar22 = DAT_001c46c8;
                if (*pcVar5 == '/') {
                  iVar8 = FUN_00040250();
                  if (iVar8 != 0) break;
                }
                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {
                  sVar10 = strlen(pcVar5);
                  do {
                    local_68 = strchr(pcVar22,(int)DAT_001c4728);
                    if (local_68 == (char *)0x0) {
                      sVar25 = strlen(pcVar22);
                      local_68 = pcVar22 + sVar25;
                    }
                    sVar25 = (int)local_68 - (int)pcVar22;
                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);
                    pcVar16 = local_84;
                    if (pcVar22 != local_68) {
                      memcpy(local_84,pcVar22,sVar25);
                      local_84[sVar25] = '/';
                      pcVar16 = local_84 + sVar25 + 1;
                    }
                    pcVar22 = (char *)0x0;
                    strcpy(pcVar16,pcVar5);
                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {
                      pcVar16 = strchr(pcVar22,0x2f);
                      sVar25 = strlen(local_84);
                      if (pcVar16 != (char *)0x0) {
                        *pcVar16 = '\0';
                      }
                      bVar20 = pcVar22[1];
                      pcVar15 = pcVar22 + 1;
                      if (bVar20 == 0x7b) {
                        bVar20 = pcVar22[2];
                        pcVar15 = pcVar22 + 2;
                      }
                      pbVar17 = (byte *)(pcVar15 + 1);
                      bVar29 = bVar20 < 0x4c;
                      bVar30 = bVar20 == 0x4c;
                      if (bVar30) {
                        iVar8 = 3;
                        pbVar23 = pbVar17;
                        pbVar26 = (byte *)0x701f6;
                        do {
                          if (iVar8 == 0) break;
                          iVar8 = iVar8 + -1;
                          bVar29 = *pbVar23 < *pbVar26;
                          bVar30 = *pbVar23 == *pbVar26;
                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;
                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;
                        } while (bVar30);
                        bVar28 = false;
                        bVar29 = (!bVar29 && !bVar30) == bVar29;
                        if (!bVar29) {
                          iVar8 = 4;
                          pbVar23 = &DAT_000af890;
                          do {
                            if (iVar8 == 0) break;
                            iVar8 = iVar8 + -1;
                            bVar28 = *pbVar17 < *pbVar23;
                            bVar29 = *pbVar17 == *pbVar23;
                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;
                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;
                          } while (bVar29);
                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;
                        }
                        sVar13 = 5;
                        pcVar27 = (char *)0x0;
                        pcVar15 = "lib64";
LAB_00040b60:
                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);
                        iVar8 = (int)pcVar22 - (int)local_84;
                        if (pcVar16 == (char *)0x0) {
                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);
                          sVar25 = strlen(pcVar15);
                          pcVar22 = (char *)(iVar8 + sVar25);
                        }
                        else {
                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);
                          sVar25 = strlen(pcVar15);
                          pcVar22 = (char *)(iVar8 + 1 + sVar25);
                        }
                        free(local_84);
                        local_84 = pcVar12;
                      }
                      else {
                        bVar29 = bVar20 < 0x4f;
                        bVar30 = bVar20 == 0x4f;
                        if (bVar30) {
                          iVar8 = 6;
                          pbVar23 = pbVar17;
                          pbVar26 = (byte *)0x704cc;
                          do {
                            if (iVar8 == 0) break;
                            iVar8 = iVar8 + -1;
                            bVar29 = *pbVar23 < *pbVar26;
                            bVar30 = *pbVar23 == *pbVar26;
                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;
                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;
                          } while (bVar30);
                          bVar28 = false;
                          bVar29 = (!bVar29 && !bVar30) == bVar29;
                          if (!bVar29) {
                            iVar8 = 7;
                            pbVar23 = (byte *)"RIGIN}";
                            do {
                              if (iVar8 == 0) break;
                              iVar8 = iVar8 + -1;
                              bVar28 = *pbVar17 < *pbVar23;
                              bVar29 = *pbVar17 == *pbVar23;
                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;
                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;
                            } while (bVar29);
                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;
                          }
                          puVar11 = puVar1;
                          if (((puVar1 != (undefined4 *)0x0) ||
                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&
                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {
                            if (*pcVar27 == '/') {
                              pcVar15 = (char *)xstrdup(pcVar27);
                            }
                            else {
                              pcVar12 = (char *)getpwd();
                              sVar13 = strlen(pcVar27);
                              sVar14 = strlen(pcVar12);
                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);
                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);
                            }
                            pcVar27 = strrchr(pcVar15,0x2f);
                            if (pcVar27 != (char *)0x0) {
                              *pcVar27 = '\0';
                            }
                            sVar13 = strlen(pcVar15);
                            pcVar27 = pcVar15;
                            goto LAB_00040b60;
                          }
                        }
LAB_00040c47:
                        if (DAT_001c475c != 0) {
                          uVar9 = dcgettext(0,
                                            "unrecognised or unsupported token \'%s\' in search path\n"
                                            ,5);
                          FUN_00034d90(uVar9,pcVar22);
                        }
                        if (pcVar16 != (char *)0x0) {
                          *pcVar16 = '/';
                        }
                        pcVar27 = (char *)0x0;
                        pcVar22 = pcVar22 + (1 - (int)local_84);
                      }
                      free(pcVar27);
                    }
                    iVar8 = FUN_00040250();
                    if (iVar8 != 0) goto LAB_00040900;
                    free(local_84);
                    if (*local_68 == '\0') break;
                    pcVar22 = local_68 + 1;
                  } while( true );
                }
                sVar10 = strlen((char *)local_78[2]);
                if (DAT_001c4804 != (int *)0x0) {
                  piVar24 = DAT_001c4804;
                  do {
                    if (piVar24[2] == 0) {
                      sVar25 = strlen((char *)piVar24[1]);
                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);
                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);
                      iVar8 = FUN_00040250();
                      if (iVar8 != 0) goto LAB_00040900;
                      free(pcVar22);
                    }
                    piVar24 = (int *)*piVar24;
                  } while (piVar24 != (int *)0x0);
                }
                if (bVar3) goto code_r0x00040e73;
                bVar3 = true;
              } while( true );
            }
          }
        }
        goto LAB_00040900;
      }
LAB_00040912:
      if (((DAT_001c45e3 & 0xc0) == 0x80) &&
         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {
        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);
        FUN_00034dc0(uVar9);
      }
    }
  }
  return;
code_r0x00040e73:
  uVar9 = local_78[1];
  uVar2 = local_78[2];
  uVar18 = dcgettext(0,
                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"
                     ,5);
  FUN_00034dc0(uVar18,uVar2,uVar9);
LAB_00040900:
  local_78 = (undefined4 *)*local_78;
  if (local_78 == (undefined4 *)0x0) goto LAB_00040912;
  goto LAB_000407c0;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00017c50
ADD EBX,0x181a77
SUB ESP,0x7c
CALL 0x000339e0
LEA ESI,[EBX + 0x25e0]
MOV EAX,dword ptr [ESI + 0x20]
MOV dword ptr [ESP + 0x20],ESI
CMP dword ptr [EAX + 0x28],0x1
MOV dword ptr [ESP + 0x1c],EAX
JNZ 0x0004070b
LEA EDI,[EBX + 0x2680]
MOV EAX,dword ptr [EDI + 0x20]
MOV dword ptr [ESP + 0x48],EDI
TEST EAX,EAX
JZ 0x000405ec
SUB ESP,0xc
PUSH EAX
CALL 0x00016920
MOV EAX,dword ptr [ESI + 0x34]
POP ECX
POP EBP
MOV EAX,dword ptr [EAX + 0x4]
PUSH dword ptr [EAX]
PUSH dword ptr [EDI + 0x20]
CALL 0x00016a30
ADD ESP,0x10
MOV dword ptr [ESI + 0x38],EAX
TEST EAX,EAX
JZ 0x000410ed
MOV EDX,dword ptr [EBX + 0x1be4]
MOV EAX,dword ptr [ESP + 0x20]
TEST EDX,EDX
JZ 0x00041033
MOV ESI,dword ptr [EAX + 0x3c]
TEST ESI,ESI
JNZ 0x0004061e
JMP 0x00040737
MOV ESI,dword ptr [ESI + 0x9c]
TEST ESI,ESI
JZ 0x00040737
MOV EAX,dword ptr [ESI + 0x4]
CMP dword ptr [EAX + 0x4],0x5
JNZ 0x00040610
MOV EDI,dword ptr [ESI + 0x68]
TEST EDI,EDI
JZ 0x00040610
MOV EAX,dword ptr [ESI + 0xa4]
TEST byte ptr [EAX + 0x24],0x10
JNZ 0x00040610
SUB ESP,0xc
PUSH EDX
CALL 0x00038a90
ADD ESP,0x10
MOV EDI,EDX
OR EDI,EAX
JZ 0x00040713
ADD EAX,0x10
ADC EDX,0x0
MOV EDI,EAX
MOV EBP,EDX
OR EDX,EAX
JZ 0x00040713
SUB ESP,0x4
LEA EAX,[EBX + 0xffeed8a5]
PUSH 0x10402b
PUSH EAX
PUSH ESI
CALL 0x00016190
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00041118
MOV ECX,dword ptr [ESP + 0x20]
LEA ESI,[EBX + 0xffe7d390]
MOV dword ptr [EAX + 0x58],0x2
MOV EDX,dword ptr [ECX + 0x34]
MOV ECX,dword ptr [EDX + 0xa0]
MOV ECX,dword ptr [ECX + 0x9c0]
MOV dword ptr [ECX + 0x10],ESI
MOV ESI,dword ptr [EBX + 0x1be4]
MOV dword ptr [ECX + 0x18],EAX
MOV dword ptr [ECX + 0x14],ESI
MOV ECX,dword ptr [EAX + 0xa4]
MOV dword ptr [ECX + 0x4],0x7
MOV dword ptr [EAX + 0x2c],EDI
MOV dword ptr [EAX + 0x30],EBP
JMP 0x00040754
MOVZX EDX,byte ptr [EAX + 0x5]
MOVZX EAX,byte ptr [EAX + 0x6]
MOV ECX,EDX
MOV byte ptr [ESP + 0x8],AL
NOT EAX
SHR CL,0x7
AND EAX,0x1
CMP CL,AL
JNZ 0x0004070b
MOV EAX,EDX
SUB ESP,0x4
SHR AL,0x3
AND EAX,0x10
OR EAX,0x8
MOVZX EAX,AL
PUSH EAX
LEA EAX,[EBX + 0xffeed8b8]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x2c]
PUSH dword ptr [EAX + 0x3c]
CALL 0x00016190
ADD ESP,0x10
ADD ESP,0x7c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xffeed474]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016380
MOV dword ptr [ESP],EAX
CALL 0x00034dc0
MOV EDX,dword ptr [EBX + 0x1be4]
ADD ESP,0x10
SUB ESP,0xc
PUSH EDX
CALL 0x00016e80
MOV EAX,dword ptr [ESP + 0x30]
ADD ESP,0x10
MOV dword ptr [EBX + 0x1be4],0x0
MOV EDX,dword ptr [EAX + 0x34]
SUB ESP,0xc
MOV EAX,dword ptr [EDX + 0x4]
MOV EDI,dword ptr [ESP + 0x2c]
MOV EAX,dword ptr [EAX + 0x1c0]
PUSH EDI
CALL dword ptr [EAX + 0x1d0]
MOVZX EAX,byte ptr [EDI]
MOV byte ptr [ESP + 0x18],AL
AND EAX,0x3
ADD ESP,0x10
CMP AL,0x2
MOV EAX,dword ptr [ESP + 0x20]
JZ 0x000406c9
TEST byte ptr [EAX + 0x4],0x20
JZ 0x00040eb0
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x28]
PUSH EAX
PUSH dword ptr [EAX + 0x34]
CALL 0x00016610
LEA ECX,[EBX + 0x2804]
MOV dword ptr [ESP + 0x40],EAX
ADD ESP,0x10
MOV dword ptr [ESP + 0x14],EAX
MOV dword ptr [ESP + 0x4c],ECX
TEST EAX,EAX
JZ 0x00040912
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX + 0x4]
TEST EAX,EAX
JZ 0x00040805
SUB ESP,0xc
PUSH EAX
CALL 0x00016430
ADD ESP,0x10
TEST AL,0x1
JNZ 0x00040900
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EAX + 0x4]
TEST EDX,EDX
JZ 0x00040805
MOV EAX,dword ptr [ESP + 0x20]
MOVZX EAX,word ptr [EAX + 0x2]
MOV word ptr [ESP + 0x8],AX
AND AX,0x180
CMP AX,0x80
JZ 0x00040978
MOV EAX,dword ptr [ESP + 0x30]
MOV EDI,dword ptr [ESP + 0x14]
MOV ESI,EAX
CMP EAX,EDI
JZ 0x00040856
MOV EDI,dword ptr [ESP + 0x14]
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [ESI + 0x4]
TEST EAX,EAX
JZ 0x00040837
SUB ESP,0xc
PUSH EAX
CALL 0x00016430
ADD ESP,0x10
TEST AL,0x1
JNZ 0x00040850
SUB ESP,0x8
PUSH dword ptr [EDI + 0x8]
PUSH dword ptr [ESI + 0x8]
CALL 0x000160f0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00040968
MOV ESI,dword ptr [ESI]
CMP ESI,EDI
JNZ 0x00040820
MOV EAX,dword ptr [ESP + 0x14]
SUB ESP,0xc
MOV dword ptr [EBX + 0x1bf8],0x0
MOV dword ptr [EBX + 0x1c60],EAX
LEA EAX,[EBX + 0xffe7e150]
MOV dword ptr [EBX + 0x1c64],EAX
LEA EAX,[EBX + 0xffe7b480]
PUSH EAX
CALL 0x000276c0
MOV EAX,dword ptr [EBX + 0x1bf8]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000408a4
SUB ESP,0xc
PUSH dword ptr [EAX + 0x10]
CALL 0x00016430
ADD ESP,0x10
TEST AL,0x1
JZ 0x00040900
MOV EAX,dword ptr [ESP + 0x14]
MOV ESI,dword ptr [EAX + 0x4]
MOV EDI,dword ptr [EAX + 0x8]
LEA EAX,[EBX + 0x275c]
MOV dword ptr [ESP + 0x58],ESI
MOV EBP,dword ptr [EAX]
MOV dword ptr [ESP + 0x5c],EDI
MOV dword ptr [ESP + 0x60],ESI
MOV dword ptr [ESP + 0x1c],EAX
TEST EBP,EBP
JNZ 0x00041098
MOV EAX,dword ptr [EBX + 0x1bf8]
TEST EAX,EAX
JZ 0x00040998
MOV EDX,dword ptr [EAX + 0x8]
MOV ECX,0x1
LEA EAX,[ESP + 0x60]
MOV dword ptr [ESP + 0x64],EDX
CALL 0x00040250
TEST EAX,EAX
JZ 0x00040998
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x14],EAX
TEST EAX,EAX
JNZ 0x000407c0
MOV EAX,dword ptr [ESP + 0x20]
MOVZX EAX,byte ptr [EAX + 0x3]
MOV byte ptr [ESP + 0x8],AL
AND EAX,0xffffffc0
CMP AL,0x80
JNZ 0x0004070b
SUB ESP,0x8
PUSH dword ptr [ESP + 0x28]
PUSH 0x0
CALL 0x00016910
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004070b
SUB ESP,0x4
LEA EAX,[EBX + 0xffeed590]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016380
MOV dword ptr [ESP],EAX
CALL 0x00034dc0
ADD ESP,0x10
JMP 0x0004070b
CMP ESI,dword ptr [ESP + 0x14]
JNZ 0x00040900
JMP 0x00040856
SUB ESP,0xc
PUSH EDX
CALL 0x00016430
ADD ESP,0x10
TEST AL,0x4
JNZ 0x00040900
JMP 0x00040805
LEA EAX,[EBX + 0x26e0]
MOV dword ptr [ESP + 0x28],0x0
MOV dword ptr [ESP + 0x38],EAX
MOV EAX,dword ptr [ESP + 0x48]
MOV ESI,dword ptr [EAX + 0x48]
MOV EAX,dword ptr [ESP + 0x5c]
CMP byte ptr [EAX],0x2f
MOV dword ptr [ESP + 0x34],EAX
JZ 0x00040dbf
TEST ESI,ESI
JZ 0x00040dd8
CMP byte ptr [ESI],0x0
JZ 0x00040dd8
MOV EAX,dword ptr [ESP + 0x58]
SUB ESP,0xc
MOV dword ptr [ESP + 0x74],EAX
MOV EAX,dword ptr [ESP + 0x40]
MOV dword ptr [ESP + 0x78],EAX
PUSH EAX
CALL 0x00016870
ADD ESP,0x10
ADD EAX,0x2
MOV dword ptr [ESP + 0x3c],EAX
LEA EAX,[ESP + 0x68]
MOV dword ptr [ESP + 0x40],EAX
LEA EAX,[EBX + 0xffeed89e]
MOV dword ptr [ESP + 0x44],EAX
LEA ESI,[ESI]
NOP
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x40]
MOVSX EAX,byte ptr [EAX + 0x48]
PUSH EAX
PUSH ESI
CALL 0x00016840
ADD ESP,0x10
MOV dword ptr [ESP + 0x24],EAX
TEST EAX,EAX
JZ 0x00040da8
MOV EBP,dword ptr [ESP + 0x24]
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x48]
MOV EDI,EBP
SUB EDI,ESI
ADD EAX,EDI
PUSH EAX
CALL 0x00016e98
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
CMP ESI,EBP
JZ 0x00040a6b
SUB ESP,0x4
PUSH EDI
PUSH ESI
MOV ESI,EAX
PUSH EAX
CALL 0x00016250
MOV byte ptr [ESI + EDI*0x1],0x2f
LEA EAX,[ESI + EDI*0x1 + 0x1]
ADD ESP,0x10
SUB ESP,0x8
XOR EBP,EBP
PUSH dword ptr [ESP + 0x3c]
PUSH EAX
CALL 0x000165d0
ADD ESP,0x10
LEA EAX,[EBX + 0xffeed894]
MOV dword ptr [ESP + 0x2c],EAX
JMP 0x00040bd5
MOV ECX,0x6
LEA EDI,[EBX + 0xffeae4cc]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JZ 0x00040ac5
MOV ESI,EAX
MOV ECX,0x7
LEA EDI,[EBX + 0xffeed889]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00040c47
MOV EAX,dword ptr [ESP + 0x68]
TEST EAX,EAX
JZ 0x00040d60
MOV EDI,dword ptr [EAX]
TEST EDI,EDI
JZ 0x00040c47
CMP byte ptr [EDI],0x2f
JZ 0x00040d78
MOV dword ptr [ESP + 0x10],EDX
CALL 0x00016410
SUB ESP,0xc
MOV dword ptr [ESP + 0x18],EAX
PUSH EDI
CALL 0x00016870
POP EDX
PUSH dword ptr [ESP + 0x18]
MOV ESI,EAX
CALL 0x00016870
LEA EAX,[ESI + EAX*0x1 + 0x2]
MOV dword ptr [ESP],EAX
CALL 0x00016e98
PUSH EDI
MOV ESI,EAX
LEA EAX,[EBX + 0xffeed898]
PUSH dword ptr [ESP + 0x20]
PUSH EAX
PUSH ESI
CALL 0x00016ba0
ADD ESP,0x20
MOV EDX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0xc],EDX
SUB ESP,0x8
PUSH 0x2f
PUSH ESI
CALL 0x00016ae0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JZ 0x00040d98
MOV byte ptr [EAX],0x0
SUB ESP,0xc
MOV EDI,ESI
PUSH ESI
CALL 0x00016870
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x10],EDX
SUB ESP,0xc
ADD EAX,dword ptr [ESP + 0x24]
PUSH EAX
CALL 0x00016e98
SUB EBP,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x1c],EAX
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x10]
TEST EDX,EDX
JZ 0x00040d30
SUB ESP,0x8
ADD EDX,0x1
PUSH EDX
PUSH ESI
PUSH dword ptr [ESP + 0x18]
PUSH EBP
PUSH dword ptr [ESP + 0x44]
PUSH dword ptr [ESP + 0x28]
CALL 0x00016ba0
ADD ESP,0x14
PUSH ESI
CALL 0x00016870
ADD ESP,0x10
LEA EBP,[EBP + EAX*0x1 + 0x1]
SUB ESP,0xc
PUSH dword ptr [ESP + 0x14]
CALL 0x00016e80
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x8],EAX
SUB ESP,0xc
PUSH EDI
CALL 0x00016e80
ADD ESP,0x10
SUB ESP,0x8
PUSH 0x24
ADD EBP,dword ptr [ESP + 0x14]
PUSH EBP
CALL 0x00016840
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x00040ce8
SUB ESP,0x8
PUSH 0x2f
PUSH EBP
CALL 0x00016840
POP ECX
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBP + 0x1]
MOV dword ptr [ESP + 0x1c],EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x00016870
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x18],EAX
TEST EDX,EDX
JZ 0x00040c23
MOV byte ptr [EDX],0x0
MOVZX ECX,byte ptr [EBP + 0x1]
LEA EAX,[EBP + 0x1]
CMP CL,0x7b
JNZ 0x00040c36
MOVZX ECX,byte ptr [EBP + 0x2]
LEA EAX,[EBP + 0x2]
ADD EAX,0x1
CMP CL,0x4c
JZ 0x00040c70
CMP CL,0x4f
JZ 0x00040a90
MOV EAX,dword ptr [ESP + 0x1c]
MOV ESI,dword ptr [EAX]
TEST ESI,ESI
JNZ 0x00040cb8
TEST EDX,EDX
JZ 0x00040c58
MOV byte ptr [EDX],0x2f
MOV EBP,dword ptr [ESP + 0x10]
XOR EDI,EDI
SUB EBP,dword ptr [ESP + 0x8]
JMP 0x00040bc9
MOV ECX,0x3
LEA EDI,[EBX + 0xffeae1f6]
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JZ 0x00040ca1
MOV ESI,EAX
MOV ECX,0x4
LEA EDI,[EBX + 0xffeed890]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00040c47
MOV EAX,0x5
XOR EDI,EDI
LEA ESI,[EBX + 0xffeed883]
JMP 0x00040b60
MOV dword ptr [ESP + 0xc],EDX
LEA EAX,[EBX + 0xffeed414]
SUB ESP,0x4
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016380
POP EDX
POP ECX
PUSH EBP
PUSH EAX
CALL 0x00034d90
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
JMP 0x00040c51
MOV EDI,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [ESP + 0x40]
MOV EDX,EDI
MOV dword ptr [ESP + 0x6c],EDI
CALL 0x00040250
TEST EAX,EAX
JNZ 0x00040900
SUB ESP,0xc
PUSH EDI
CALL 0x00016e80
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x24]
CMP byte ptr [EAX],0x0
JZ 0x00040dd8
ADD EAX,0x1
MOV ESI,EAX
JMP 0x00040a10
SUB ESP,0xc
PUSH ESI
PUSH dword ptr [ESP + 0x18]
PUSH EBP
PUSH dword ptr [ESP + 0x5c]
PUSH dword ptr [ESP + 0x28]
CALL 0x00016ba0
ADD ESP,0x14
PUSH ESI
CALL 0x00016870
ADD ESP,0x10
ADD EBP,EAX
JMP 0x00040bb2
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x34]
TEST EAX,EAX
JNZ 0x00040ad1
JMP 0x00040c47
MOV dword ptr [ESP + 0xc],EDX
SUB ESP,0xc
PUSH EDI
CALL 0x00016570
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
MOV ESI,EAX
JMP 0x00040b2d
MOV dword ptr [ESP + 0xc],EDX
JMP 0x00040b4e
SUB ESP,0xc
PUSH ESI
CALL 0x00016870
ADD ESP,0x10
ADD EAX,ESI
MOV dword ptr [ESP + 0x24],EAX
JMP 0x00040a31
MOV ECX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [ESP + 0x34]
LEA EAX,[ESP + 0x58]
CALL 0x00040250
TEST EAX,EAX
JNZ 0x00040900
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x20]
PUSH dword ptr [EAX + 0x8]
CALL 0x00016870
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x4c]
MOV ESI,dword ptr [ECX]
TEST ESI,ESI
JZ 0x00040e6c
ADD EAX,0x2
LEA EBP,[EBX + 0xffeed898]
MOV dword ptr [ESP + 0x8],EAX
LEA ESI,[ESI]
MOV EAX,dword ptr [ESI + 0x8]
TEST EAX,EAX
JNZ 0x00040e66
SUB ESP,0xc
PUSH dword ptr [ESI + 0x4]
CALL 0x00016870
ADD EAX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP],EAX
CALL 0x00016e98
MOV EDI,EAX
MOV EAX,dword ptr [ESP + 0x24]
PUSH dword ptr [EAX + 0x8]
PUSH dword ptr [ESI + 0x4]
PUSH EBP
PUSH EDI
CALL 0x00016ba0
MOV dword ptr [ESP + 0x84],EDI
ADD ESP,0x20
MOV EDX,EDI
MOV ECX,dword ptr [ESP + 0x28]
LEA EAX,[ESP + 0x60]
CALL 0x00040250
TEST EAX,EAX
JNZ 0x00040900
SUB ESP,0xc
PUSH EDI
CALL 0x00016e80
ADD ESP,0x10
MOV ESI,dword ptr [ESI]
TEST ESI,ESI
JNZ 0x00040e08
CMP dword ptr [ESP + 0x28],0x1
JNZ 0x00040ea3
MOV EAX,dword ptr [ESP + 0x14]
SUB ESP,0x4
MOV EDI,dword ptr [EAX + 0x4]
MOV ESI,dword ptr [EAX + 0x8]
LEA EAX,[EBX + 0xffeed5b8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016380
ADD ESP,0xc
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x00034dc0
ADD ESP,0x10
JMP 0x00040900
MOV dword ptr [ESP + 0x28],0x1
JMP 0x000409aa
MOV EBP,dword ptr [EAX + 0x3c]
TEST EBP,EBP
JZ 0x0004078e
MOV EAX,dword ptr [EBX + 0xffffffd4]
MOV dword ptr [ESP + 0x14],0x0
MOV dword ptr [ESP + 0x24],0x0
ADD EAX,0x180
MOV dword ptr [ESP + 0x18],0x0
MOV dword ptr [ESP + 0xc],EAX
JMP 0x00040ef6
MOV EBP,dword ptr [EBP + 0x9c]
TEST EBP,EBP
JZ 0x00040fe6
MOV EAX,dword ptr [EBP + 0xa4]
TEST byte ptr [EAX + 0x24],0x10
JNZ 0x00040ee8
MOV EDX,dword ptr [EBP + 0x60]
TEST EDX,EDX
JZ 0x00040fb8
LEA EAX,[EBX + 0xffeed8c8]
MOV dword ptr [ESP + 0x8],0x0
MOV dword ptr [ESP + 0x10],EAX
JMP 0x00040f67
MOV ESI,EAX
MOV ECX,0xa
LEA EDI,[EBX + 0xffeed8d8]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
MOVSX EAX,AL
TEST EAX,EAX
JNZ 0x00040f5c
MOV ECX,0x8
CMP ECX,dword ptr [EDX + 0x2c]
SBB EAX,dword ptr [EDX + 0x30]
MOV EAX,0x1
CMOVNC EAX,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x8],EAX
MOV EDX,dword ptr [EDX + 0xc]
TEST EDX,EDX
JZ 0x0004103b
MOV EAX,dword ptr [EDX]
MOV EDI,dword ptr [ESP + 0xc]
CMP dword ptr [EDX + 0x54],EDI
JZ 0x00040f5c
MOV EDI,dword ptr [ESP + 0x10]
MOV ECX,0xf
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JNZ 0x00040f28
MOV dword ptr [ESP + 0x8],0x2
MOV EAX,dword ptr [ESP + 0x14]
TEST EAX,EAX
JZ 0x00041050
MOV ECX,dword ptr [ESP + 0x8]
CMP EAX,ECX
JNZ 0x00041128
MOV EAX,dword ptr [ESP + 0x18]
TEST EAX,EAX
JZ 0x00041064
LEA ESI,[ESI]
CMP dword ptr [ESP + 0x14],0x2
JNZ 0x00040ee8
MOV EDX,dword ptr [ESP + 0x20]
MOV EBP,dword ptr [EBP + 0x9c]
MOVZX EAX,byte ptr [EDX + 0x3]
MOV byte ptr [ESP + 0x8],AL
AND EAX,0x3f
OR EAX,0xffffff80
MOV byte ptr [EDX + 0x3],AL
TEST EBP,EBP
JNZ 0x00040ef6
MOV EDX,dword ptr [ESP + 0x18]
TEST EDX,EDX
JZ 0x000410be
MOV EAX,dword ptr [EDX + 0x4]
SUB ESP,0x4
MOV EAX,dword ptr [EAX + 0x1c0]
MOV EAX,dword ptr [EAX + 0x30]
OR EAX,0x8
PUSH EAX
LEA EAX,[EBX + 0xffeed8e2]
PUSH EAX
PUSH EDX
CALL 0x00016190
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000410be
MOV ECX,dword ptr [ESP + 0x1c]
MOV dword ptr [EAX + 0x58],0x2
MOV dword ptr [ECX + 0xd0],EAX
JMP 0x0004078e
MOV EDX,dword ptr [EAX + 0x34]
JMP 0x00040754
MOV ESI,dword ptr [ESP + 0x8]
TEST ESI,ESI
JZ 0x00040fb8
JMP 0x00040f91
MOV EAX,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,dword ptr [ESP + 0x18]
TEST EAX,EAX
JNZ 0x00040fb8
CMP dword ptr [ESP + 0x8],0x2
JZ 0x00041079
MOV EAX,dword ptr [ESP + 0x20]
TEST byte ptr [EAX + 0x3],0xc0
JZ 0x00040fb8
MOV EAX,dword ptr [EBP + 0x4]
MOV dword ptr [ESP + 0x24],0x1
CMP dword ptr [EAX + 0x4],0x5
MOV EAX,dword ptr [ESP + 0x18]
CMOVZ EAX,EBP
MOV dword ptr [ESP + 0x18],EAX
JMP 0x00040fb8
SUB ESP,0x4
LEA EAX,[EBX + 0xffeed8f0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016380
ADD ESP,0xc
PUSH ESI
PUSH EDI
PUSH EAX
CALL 0x00034d90
ADD ESP,0x10
JMP 0x000408ce
MOV EAX,dword ptr [ESP + 0x24]
TEST EAX,EAX
JZ 0x0004078e
SUB ESP,0x4
LEA EAX,[EBX + 0xffeed544]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016380
MOV dword ptr [ESP],EAX
CALL 0x00034dc0
ADD ESP,0x10
JMP 0x0004078e
MOV EAX,dword ptr [ESP + 0x48]
SUB ESP,0x4
MOV ESI,dword ptr [EAX + 0x20]
LEA EAX,[EBX + 0xffeed44c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016380
POP EBP
POP EDX
PUSH ESI
PUSH EAX
CALL 0x00034dc0
ADD ESP,0x10
JMP 0x000405ec
SUB ESP,0x4
LEA EAX,[EBX + 0xffeed4a8]
PUSH 0x5
JMP 0x0004071e
CMP ECX,0x1
LEA EAX,[EBX + 0xffeed4f4]
CMOVNZ EBP,dword ptr [ESP + 0x18]
SUB ESP,0x4
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016380
POP EDX
POP ECX
PUSH EBP
PUSH EAX
CALL 0x00034dc0
ADD ESP,0x10
JMP 0x00040fe6
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid FUN_00040580(void)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  bool bVar3;\n  void *pvVar4;\n  char *pcVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  size_t sVar10;\n  undefined4 *puVar11;\n  char *pcVar12;\n  size_t sVar13;\n  size_t sVar14;\n  char *pcVar15;\n  char *pcVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  int iVar19;\n  byte bVar20;\n  int iVar21;\n  char *pcVar22;\n  byte *pbVar23;\n  int *piVar24;\n  size_t sVar25;\n  byte *pbVar26;\n  char *pcVar27;\n  bool bVar28;\n  bool bVar29;\n  bool bVar30;\n  byte bVar31;\n  longlong lVar32;\n  char *local_84;\n  undefined4 *local_78;\n  int local_74;\n  char *local_68;\n  \n  bVar31 = 0;\n  FUN_000339e0();\n  iVar8 = DAT_001c4600;\n  if (*(int *)(DAT_001c4600 + 0x28) == 1) {\n    if (DAT_001c46a0 != 0) {\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }\n    puVar6 = DAT_001c4614;\n    iVar19 = DAT_001c461c;\n    if (DAT_001c3be4 != (void *)0x0) {\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }\nLAB_00040754:\n    (**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);\n    if ((DAT_001c45e0 & 3) == 2) {\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }\n  }\n  return;\ncode_r0x00040e73:\n  uVar9 = local_78[1];\n  uVar2 = local_78[2];\n  uVar18 = dcgettext(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5);\n  FUN_00034dc0(uVar18,uVar2,uVar9);\nLAB_00040900:\n  local_78 = (undefined4 *)*local_78;\n  if (local_78 == (undefined4 *)0x0) goto LAB_00040912;\n  goto LAB_000407c0;\n}\n\n" comment comment (function_definition "void FUN_00040580(void)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  bool bVar3;\n  void *pvVar4;\n  char *pcVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  size_t sVar10;\n  undefined4 *puVar11;\n  char *pcVar12;\n  size_t sVar13;\n  size_t sVar14;\n  char *pcVar15;\n  char *pcVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  int iVar19;\n  byte bVar20;\n  int iVar21;\n  char *pcVar22;\n  byte *pbVar23;\n  int *piVar24;\n  size_t sVar25;\n  byte *pbVar26;\n  char *pcVar27;\n  bool bVar28;\n  bool bVar29;\n  bool bVar30;\n  byte bVar31;\n  longlong lVar32;\n  char *local_84;\n  undefined4 *local_78;\n  int local_74;\n  char *local_68;\n  \n  bVar31 = 0;\n  FUN_000339e0();\n  iVar8 = DAT_001c4600;\n  if (*(int *)(DAT_001c4600 + 0x28) == 1) {\n    if (DAT_001c46a0 != 0) {\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }\n    puVar6 = DAT_001c4614;\n    iVar19 = DAT_001c461c;\n    if (DAT_001c3be4 != (void *)0x0) {\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }\nLAB_00040754:\n    (**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);\n    if ((DAT_001c45e0 & 3) == 2) {\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }\n  }\n  return;\ncode_r0x00040e73:\n  uVar9 = local_78[1];\n  uVar2 = local_78[2];\n  uVar18 = dcgettext(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5);\n  FUN_00034dc0(uVar18,uVar2,uVar9);\nLAB_00040900:\n  local_78 = (undefined4 *)*local_78;\n  if (local_78 == (undefined4 *)0x0) goto LAB_00040912;\n  goto LAB_000407c0;\n}" primitive_type (function_declarator "FUN_00040580(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  bool bVar3;\n  void *pvVar4;\n  char *pcVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  size_t sVar10;\n  undefined4 *puVar11;\n  char *pcVar12;\n  size_t sVar13;\n  size_t sVar14;\n  char *pcVar15;\n  char *pcVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  int iVar19;\n  byte bVar20;\n  int iVar21;\n  char *pcVar22;\n  byte *pbVar23;\n  int *piVar24;\n  size_t sVar25;\n  byte *pbVar26;\n  char *pcVar27;\n  bool bVar28;\n  bool bVar29;\n  bool bVar30;\n  byte bVar31;\n  longlong lVar32;\n  char *local_84;\n  undefined4 *local_78;\n  int local_74;\n  char *local_68;\n  \n  bVar31 = 0;\n  FUN_000339e0();\n  iVar8 = DAT_001c4600;\n  if (*(int *)(DAT_001c4600 + 0x28) == 1) {\n    if (DAT_001c46a0 != 0) {\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }\n    puVar6 = DAT_001c4614;\n    iVar19 = DAT_001c461c;\n    if (DAT_001c3be4 != (void *)0x0) {\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }\nLAB_00040754:\n    (**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);\n    if ((DAT_001c45e0 & 3) == 2) {\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }\n  }\n  return;\ncode_r0x00040e73:\n  uVar9 = local_78[1];\n  uVar2 = local_78[2];\n  uVar18 = dcgettext(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5);\n  FUN_00034dc0(uVar18,uVar2,uVar9);\nLAB_00040900:\n  local_78 = (undefined4 *)*local_78;\n  if (local_78 == (undefined4 *)0x0) goto LAB_00040912;\n  goto LAB_000407c0;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "size_t sVar13;" primitive_type identifier ;) (declaration "size_t sVar14;" primitive_type identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "byte bVar20;" type_identifier identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "char *pcVar22;" primitive_type (pointer_declarator "*pcVar22" * identifier) ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "size_t sVar25;" primitive_type identifier ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "char *pcVar27;" primitive_type (pointer_declarator "*pcVar27" * identifier) ;) (declaration "bool bVar28;" primitive_type identifier ;) (declaration "bool bVar29;" primitive_type identifier ;) (declaration "bool bVar30;" primitive_type identifier ;) (declaration "byte bVar31;" type_identifier identifier ;) (declaration "longlong lVar32;" type_identifier identifier ;) (declaration "char *local_84;" primitive_type (pointer_declarator "*local_84" * identifier) ;) (declaration "undefined4 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "char *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (expression_statement "bVar31 = 0;" (assignment_expression "bVar31 = 0" identifier = number_literal) ;) (expression_statement "FUN_000339e0();" (call_expression "FUN_000339e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar8 = DAT_001c4600;" (assignment_expression "iVar8 = DAT_001c4600" identifier = identifier) ;) (if_statement "if (*(int *)(DAT_001c4600 + 0x28) == 1) {\n    if (DAT_001c46a0 != 0) {\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }\n    puVar6 = DAT_001c4614;\n    iVar19 = DAT_001c461c;\n    if (DAT_001c3be4 != (void *)0x0) {\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }\nLAB_00040754:\n    (**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);\n    if ((DAT_001c45e0 & 3) == 2) {\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)(DAT_001c4600 + 0x28) == 1)" ( (binary_expression "*(int *)(DAT_001c4600 + 0x28) == 1" (pointer_expression "*(int *)(DAT_001c4600 + 0x28)" * (cast_expression "(int *)(DAT_001c4600 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001c4600 + 0x28)" ( (binary_expression "DAT_001c4600 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (DAT_001c46a0 != 0) {\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }\n    puVar6 = DAT_001c4614;\n    iVar19 = DAT_001c461c;\n    if (DAT_001c3be4 != (void *)0x0) {\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }\nLAB_00040754:\n    (**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);\n    if ((DAT_001c45e0 & 3) == 2) {\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }\n  }" { (if_statement "if (DAT_001c46a0 != 0) {\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }" if (parenthesized_expression "(DAT_001c46a0 != 0)" ( (binary_expression "DAT_001c46a0 != 0" identifier != number_literal) )) (compound_statement "{\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }" { (expression_statement "unlink_if_ordinary(DAT_001c46a0);" (call_expression "unlink_if_ordinary(DAT_001c46a0)" identifier (argument_list "(DAT_001c46a0)" ( identifier ))) ;) (expression_statement "DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);" (assignment_expression "DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1])" identifier = (call_expression "bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1])" identifier (argument_list "(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1])" ( identifier , (pointer_expression "*(undefined4 *)DAT_001c4614[1]" * (cast_expression "(undefined4 *)DAT_001c4614[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_001c4614[1]" identifier [ number_literal ]))) )))) ;) (expression_statement "iVar19 = DAT_001c46a0;" (assignment_expression "iVar19 = DAT_001c46a0" identifier = identifier) ;) (if_statement "if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }" if (parenthesized_expression "(DAT_001c4618 == 0)" ( (binary_expression "DAT_001c4618 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }" { (expression_statement "uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5)" identifier (argument_list "(0,"%F%P: %s: can\'t open for writing: %E\n",5)" ( number_literal , (string_literal ""%F%P: %s: can\'t open for writing: %E\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034dc0(uVar9,iVar19);" (call_expression "FUN_00034dc0(uVar9,iVar19)" identifier (argument_list "(uVar9,iVar19)" ( identifier , identifier ))) ;) })) })) (expression_statement "puVar6 = DAT_001c4614;" (assignment_expression "puVar6 = DAT_001c4614" identifier = identifier) ;) (expression_statement "iVar19 = DAT_001c461c;" (assignment_expression "iVar19 = DAT_001c461c" identifier = identifier) ;) (if_statement "if (DAT_001c3be4 != (void *)0x0) {\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }" if (parenthesized_expression "(DAT_001c3be4 != (void *)0x0)" ( (binary_expression "DAT_001c3be4 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }" { (for_statement "for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }" for ( ; (binary_expression "iVar19 != 0" identifier != number_literal) ; (assignment_expression "iVar19 = *(int *)(iVar19 + 0x9c)" identifier = (pointer_expression "*(int *)(iVar19 + 0x9c)" * (cast_expression "(int *)(iVar19 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x9c)" ( (binary_expression "iVar19 + 0x9c" identifier + number_literal) ))))) ) (compound_statement "{\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }" { (if_statement "if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }" if (parenthesized_expression "(((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0))" ( (binary_expression "((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)" (parenthesized_expression "((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0))" ( (binary_expression "(*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)" (parenthesized_expression "(*(int *)(*(int *)(iVar19 + 4) + 4) == 5)" ( (binary_expression "*(int *)(*(int *)(iVar19 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(iVar19 + 4) + 4)" * (cast_expression "(int *)(*(int *)(iVar19 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 4) + 4)" ( (binary_expression "*(int *)(iVar19 + 4) + 4" (pointer_expression "*(int *)(iVar19 + 4)" * (cast_expression "(int *)(iVar19 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 4)" ( (binary_expression "iVar19 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(int *)(iVar19 + 0x68) != 0)" ( (binary_expression "*(int *)(iVar19 + 0x68) != 0" (pointer_expression "*(int *)(iVar19 + 0x68)" * (cast_expression "(int *)(iVar19 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x68)" ( (binary_expression "iVar19 + 0x68" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10)" ( (binary_expression "*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10" (pointer_expression "*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24)" * (cast_expression "(byte *)(*(int *)(iVar19 + 0xa4) + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0xa4) + 0x24)" ( (binary_expression "*(int *)(iVar19 + 0xa4) + 0x24" (pointer_expression "*(int *)(iVar19 + 0xa4)" * (cast_expression "(int *)(iVar19 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xa4)" ( (binary_expression "iVar19 + 0xa4" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }" { (expression_statement "lVar32 = FUN_00038a90(DAT_001c3be4);" (assignment_expression "lVar32 = FUN_00038a90(DAT_001c3be4)" identifier = (call_expression "FUN_00038a90(DAT_001c3be4)" identifier (argument_list "(DAT_001c3be4)" ( identifier )))) ;) (if_statement "if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }" if (parenthesized_expression "((lVar32 == 0) || (lVar32 + 0x10 == 0))" ( (binary_expression "(lVar32 == 0) || (lVar32 + 0x10 == 0)" (parenthesized_expression "(lVar32 == 0)" ( (binary_expression "lVar32 == 0" identifier == number_literal) )) || (parenthesized_expression "(lVar32 + 0x10 == 0)" ( (binary_expression "lVar32 + 0x10 == 0" (binary_expression "lVar32 + 0x10" identifier + number_literal) == number_literal) ))) )) (compound_statement "{\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }" { (expression_statement "pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";" (assignment_expression "pcVar5 = "%P: warning: unrecognized --build-id style ignored\n"" identifier = (string_literal ""%P: warning: unrecognized --build-id style ignored\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }" else (compound_statement "{\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }" { (expression_statement "iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );" (assignment_expression "iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               )" identifier = (call_expression "bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               )" identifier (argument_list "(iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               )" ( identifier , (string_literal "".note.gnu.build-id"" " string_content ") , (string_literal ""t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..."" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") comment )))) ;) (if_statement "if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }" { (expression_statement "*(undefined4 *)(iVar19 + 0x58) = 2;" (assignment_expression "*(undefined4 *)(iVar19 + 0x58) = 2" (pointer_expression "*(undefined4 *)(iVar19 + 0x58)" * (cast_expression "(undefined4 *)(iVar19 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x58)" ( (binary_expression "iVar19 + 0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar6 = DAT_001c4614;" (assignment_expression "puVar6 = DAT_001c4614" identifier = identifier) ;) (expression_statement "iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);" (assignment_expression "iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0)" identifier = (pointer_expression "*(int *)(DAT_001c4614[0x28] + 0x9c0)" * (cast_expression "(int *)(DAT_001c4614[0x28] + 0x9c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001c4614[0x28] + 0x9c0)" ( (binary_expression "DAT_001c4614[0x28] + 0x9c0" (subscript_expression "DAT_001c4614[0x28]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "*(code **)(iVar21 + 0x10) = FUN_0003f390;" (assignment_expression "*(code **)(iVar21 + 0x10) = FUN_0003f390" (pointer_expression "*(code **)(iVar21 + 0x10)" * (cast_expression "(code **)(iVar21 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x10)" ( (binary_expression "iVar21 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pvVar4 = DAT_001c3be4;" (assignment_expression "pvVar4 = DAT_001c3be4" identifier = identifier) ;) (expression_statement "*(int *)(iVar21 + 0x18) = iVar19;" (assignment_expression "*(int *)(iVar21 + 0x18) = iVar19" (pointer_expression "*(int *)(iVar21 + 0x18)" * (cast_expression "(int *)(iVar21 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x18)" ( (binary_expression "iVar21 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(void **)(iVar21 + 0x14) = pvVar4;" (assignment_expression "*(void **)(iVar21 + 0x14) = pvVar4" (pointer_expression "*(void **)(iVar21 + 0x14)" * (cast_expression "(void **)(iVar21 + 0x14)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x14)" ( (binary_expression "iVar21 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;" (assignment_expression "*(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7" (pointer_expression "*(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4)" * (cast_expression "(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0xa4) + 4)" ( (binary_expression "*(int *)(iVar19 + 0xa4) + 4" (pointer_expression "*(int *)(iVar19 + 0xa4)" * (cast_expression "(int *)(iVar19 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xa4)" ( (binary_expression "iVar19 + 0xa4" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;" (assignment_expression "*(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10" (pointer_expression "*(longlong *)(iVar19 + 0x2c)" * (cast_expression "(longlong *)(iVar19 + 0x2c)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x2c)" ( (binary_expression "iVar19 + 0x2c" identifier + number_literal) )))) = (binary_expression "lVar32 + 0x10" identifier + number_literal)) ;) (goto_statement "goto LAB_00040754;" goto statement_identifier ;) })) (expression_statement "pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";" (assignment_expression "pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n"" identifier = (string_literal ""%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n"" " string_content escape_sequence ")) ;) }))) (expression_statement "uVar9 = dcgettext(0,pcVar5,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar5,5)" identifier = (call_expression "dcgettext(0,pcVar5,5)" identifier (argument_list "(0,pcVar5,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_00034dc0(uVar9);" (call_expression "FUN_00034dc0(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (break_statement "break;" break ;) })) })) (expression_statement "free(DAT_001c3be4);" (call_expression "free(DAT_001c3be4)" identifier (argument_list "(DAT_001c3be4)" ( identifier ))) ;) (expression_statement "DAT_001c3be4 = (void *)0x0;" (assignment_expression "DAT_001c3be4 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar6 = DAT_001c4614;" (assignment_expression "puVar6 = DAT_001c4614" identifier = identifier) ;) })) (labeled_statement "LAB_00040754:\n    (**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);" statement_identifier : (expression_statement "(**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);" (call_expression "(**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0)" (parenthesized_expression "(**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))" ( (pointer_expression "**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0)" * (pointer_expression "*(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0)" * (cast_expression "(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar6[1] + 0x1c0) + 0x1d0)" ( (binary_expression "*(int *)(puVar6[1] + 0x1c0) + 0x1d0" (pointer_expression "*(int *)(puVar6[1] + 0x1c0)" * (cast_expression "(int *)(puVar6[1] + 0x1c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6[1] + 0x1c0)" ( (binary_expression "puVar6[1] + 0x1c0" (subscript_expression "puVar6[1]" identifier [ number_literal ]) + number_literal) )))) + number_literal) ))))) )) (argument_list "(&DAT_001c45e0)" ( (pointer_expression "&DAT_001c45e0" & identifier) ))) ;)) (if_statement "if ((DAT_001c45e0 & 3) == 2) {\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }" if (parenthesized_expression "((DAT_001c45e0 & 3) == 2)" ( (binary_expression "(DAT_001c45e0 & 3) == 2" (parenthesized_expression "(DAT_001c45e0 & 3)" ( (binary_expression "DAT_001c45e0 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }" { (if_statement "if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }" if (parenthesized_expression "(DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1))" ( (binary_expression "DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)" (binary_expression "DAT_001c45e5 >> 7" identifier >> number_literal) == (parenthesized_expression "(~DAT_001c45e6 & 1)" ( (binary_expression "~DAT_001c45e6 & 1" (unary_expression "~DAT_001c45e6" ~ identifier) & number_literal) ))) )) (compound_statement "{\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }" { (expression_statement "bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);" (call_expression "bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8)" identifier (argument_list "(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8)" ( identifier , (string_literal "".note.GNU-stack"" " string_content ") , (binary_expression "DAT_001c45e5 >> 3 & 0x10 | 8" (binary_expression "DAT_001c45e5 >> 3 & 0x10" (binary_expression "DAT_001c45e5 >> 3" identifier >> number_literal) & number_literal) | number_literal) ))) ;) })) }) (else_clause "else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }" else (compound_statement "{\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }" { (if_statement "if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }" if (parenthesized_expression "(((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0))" ( (binary_expression "((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)" (parenthesized_expression "((DAT_001c45e4 & 0x20) == 0)" ( (binary_expression "(DAT_001c45e4 & 0x20) == 0" (parenthesized_expression "(DAT_001c45e4 & 0x20)" ( (binary_expression "DAT_001c45e4 & 0x20" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(DAT_001c461c != 0)" ( (binary_expression "DAT_001c461c != 0" identifier != number_literal) ))) )) (compound_statement "{\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }" { (expression_statement "local_78 = (undefined4 *)0x0;" (assignment_expression "local_78 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) (expression_statement "iVar19 = DAT_001c461c;" (assignment_expression "iVar19 = DAT_001c461c" identifier = identifier) ;) (do_statement "do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);" do (compound_statement "{\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        }" { (while_statement "while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }" while (parenthesized_expression "((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10)" ( (binary_expression "*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10" (pointer_expression "*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24)" * (cast_expression "(byte *)(*(int *)(iVar19 + 0xa4) + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0xa4) + 0x24)" ( (binary_expression "*(int *)(iVar19 + 0xa4) + 0x24" (pointer_expression "*(int *)(iVar19 + 0xa4)" * (cast_expression "(int *)(iVar19 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xa4)" ( (binary_expression "iVar19 + 0xa4" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }" { (labeled_statement "LAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);" statement_identifier : (expression_statement "iVar19 = *(int *)(iVar19 + 0x9c);" (assignment_expression "iVar19 = *(int *)(iVar19 + 0x9c)" identifier = (pointer_expression "*(int *)(iVar19 + 0x9c)" * (cast_expression "(int *)(iVar19 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x9c)" ( (binary_expression "iVar19 + 0x9c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar19 == 0) goto LAB_00040fe6;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00040fe6;" goto statement_identifier ;)) })) (expression_statement "puVar6 = *(undefined4 **)(iVar19 + 0x60);" (assignment_expression "puVar6 = *(undefined4 **)(iVar19 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(iVar19 + 0x60)" * (cast_expression "(undefined4 **)(iVar19 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + 0x60)" ( (binary_expression "iVar19 + 0x60" identifier + number_literal) ))))) ;) (if_statement "if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }" if (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" ( (binary_expression "puVar6 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }" { (expression_statement "local_84 = (char *)0x0;" (assignment_expression "local_84 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);" do (compound_statement "{\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            }" { (expression_statement "bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;" (assignment_expression "bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180" identifier = (binary_expression "(undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180" (cast_expression "(undefined *)puVar6[0x15]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[0x15]" identifier [ number_literal ])) < (binary_expression "PTR__bfd_std_section_001c1fd4 + 0x180" identifier + number_literal))) ;) (expression_statement "bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;" (assignment_expression "bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180" identifier = (binary_expression "(undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180" (cast_expression "(undefined *)puVar6[0x15]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[0x15]" identifier [ number_literal ])) == (binary_expression "PTR__bfd_std_section_001c1fd4 + 0x180" identifier + number_literal))) ;) (expression_statement "pcVar5 = local_84;" (assignment_expression "pcVar5 = local_84" identifier = identifier) ;) (if_statement "if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (compound_statement "{\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }" { (expression_statement "iVar21 = 0xf;" (assignment_expression "iVar21 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)*puVar6;" (assignment_expression "pbVar17 = (byte *)*puVar6" identifier = (cast_expression "(byte *)*puVar6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (expression_statement "pbVar23 = (byte *)".eh_frame_entry";" (assignment_expression "pbVar23 = (byte *)".eh_frame_entry"" identifier = (cast_expression "(byte *)".eh_frame_entry"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".eh_frame_entry"" " string_content "))) ;) (do_statement "do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);" do (compound_statement "{\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                }" { (if_statement "if (iVar21 == 0) break;" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar21 = iVar21 + -1;" (assignment_expression "iVar21 = iVar21 + -1" identifier = (binary_expression "iVar21 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *pbVar17 < *pbVar23;" (assignment_expression "bVar29 = *pbVar17 < *pbVar23" identifier = (binary_expression "*pbVar17 < *pbVar23" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "bVar30 = *pbVar17 == *pbVar23;" (assignment_expression "bVar30 = *pbVar17 == *pbVar23" identifier = (binary_expression "*pbVar17 == *pbVar23" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar30)" ( identifier )) ;) (expression_statement "bVar28 = false;" (assignment_expression "bVar28 = false" identifier = false) ;) (expression_statement "bVar29 = (!bVar29 && !bVar30) == bVar29;" (assignment_expression "bVar29 = (!bVar29 && !bVar30) == bVar29" identifier = (binary_expression "(!bVar29 && !bVar30) == bVar29" (parenthesized_expression "(!bVar29 && !bVar30)" ( (binary_expression "!bVar29 && !bVar30" (unary_expression "!bVar29" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }" if (parenthesized_expression "(bVar29)" ( identifier )) (compound_statement "{\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }" { (expression_statement "local_84 = (char *)0x2;" (assignment_expression "local_84 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00040f91;" goto statement_identifier ;) })) (expression_statement "iVar21 = 10;" (assignment_expression "iVar21 = 10" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)*puVar6;" (assignment_expression "pbVar17 = (byte *)*puVar6" identifier = (cast_expression "(byte *)*puVar6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (expression_statement "pbVar23 = (byte *)".eh_frame";" (assignment_expression "pbVar23 = (byte *)".eh_frame"" identifier = (cast_expression "(byte *)".eh_frame"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".eh_frame"" " string_content "))) ;) (do_statement "do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);" do (compound_statement "{\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                }" { (if_statement "if (iVar21 == 0) break;" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar21 = iVar21 + -1;" (assignment_expression "iVar21 = iVar21 + -1" identifier = (binary_expression "iVar21 + -1" identifier + number_literal)) ;) (expression_statement "bVar28 = *pbVar17 < *pbVar23;" (assignment_expression "bVar28 = *pbVar17 < *pbVar23" identifier = (binary_expression "*pbVar17 < *pbVar23" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "bVar29 = *pbVar17 == *pbVar23;" (assignment_expression "bVar29 = *pbVar17 == *pbVar23" identifier = (binary_expression "*pbVar17 == *pbVar23" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar29)" ( identifier )) ;) (if_statement "if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }" if (parenthesized_expression "(((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc]))" ( (binary_expression "((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])" (parenthesized_expression "((!bVar28 && !bVar29) == bVar28)" ( (binary_expression "(!bVar28 && !bVar29) == bVar28" (parenthesized_expression "(!bVar28 && !bVar29)" ( (binary_expression "!bVar28 && !bVar29" (unary_expression "!bVar28" ! identifier) && (unary_expression "!bVar29" ! identifier)) )) == identifier) )) && (parenthesized_expression "(pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])" ( (comma_expression "pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc]" (assignment_expression "pcVar5 = (char *)1" identifier = (cast_expression "(char *)1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc]" (binary_expression "puVar6[0xc] == 0" (subscript_expression "puVar6[0xc]" identifier [ number_literal ]) == number_literal) && (binary_expression "(uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc]" (call_expression "(uint)(8 < (uint)puVar6[0xb])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(8 < (uint)puVar6[0xb])" ( (binary_expression "8 < (uint)puVar6[0xb]" number_literal < (cast_expression "(uint)puVar6[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar6[0xb]" identifier [ number_literal ]))) ))) <= (binary_expression "(uint)-puVar6[0xc]" (parenthesized_expression "(uint)" ( identifier )) - (subscript_expression "puVar6[0xc]" identifier [ number_literal ]))))) ))) )) (compound_statement "{\n                  pcVar5 = local_84;\n                }" { (expression_statement "pcVar5 = local_84;" (assignment_expression "pcVar5 = local_84" identifier = identifier) ;) })) })) (expression_statement "local_84 = pcVar5;" (assignment_expression "local_84 = pcVar5" identifier = identifier) ;) (expression_statement "puVar6 = (undefined4 *)puVar6[3];" (assignment_expression "puVar6 = (undefined4 *)puVar6[3]" identifier = (cast_expression "(undefined4 *)puVar6[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[3]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" ( (binary_expression "puVar6 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }" if (parenthesized_expression "(local_84 != (char *)0x0)" ( (binary_expression "local_84 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }" { (labeled_statement "LAB_00040f91:\n              pcVar5 = local_84;" statement_identifier : (expression_statement "pcVar5 = local_84;" (assignment_expression "pcVar5 = local_84" identifier = identifier) ;)) (if_statement "if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }" if (parenthesized_expression "((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84))" ( (binary_expression "(local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)" (parenthesized_expression "(local_78 != (undefined4 *)0x0)" ( (binary_expression "local_78 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar5 = (char *)local_78, (char *)local_78 != local_84)" ( (comma_expression "pcVar5 = (char *)local_78, (char *)local_78 != local_84" (assignment_expression "pcVar5 = (char *)local_78" identifier = (cast_expression "(char *)local_78" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "(char *)local_78 != local_84" (cast_expression "(char *)local_78" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != identifier)) ))) )) (compound_statement "{\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }" { (if_statement "if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }" if (parenthesized_expression "(local_84 != (char *)0x1)" ( (binary_expression "local_84 != (char *)0x1" identifier != (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  iVar19 = local_74;\n                }" { (expression_statement "iVar19 = local_74;" (assignment_expression "iVar19 = local_74" identifier = identifier) ;) })) (expression_statement "uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);" (assignment_expression "uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5)" identifier = (call_expression "dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5)" identifier (argument_list "(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5)" ( number_literal , (string_literal ""%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034dc0(uVar9,iVar19);" (call_expression "FUN_00034dc0(uVar9,iVar19)" identifier (argument_list "(uVar9,iVar19)" ( identifier , identifier ))) ;) (break_statement "break;" break ;) })) (expression_statement "local_78 = (undefined4 *)pcVar5;" (assignment_expression "local_78 = (undefined4 *)pcVar5" identifier = (cast_expression "(undefined4 *)pcVar5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }" if (parenthesized_expression "((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5))))" ( (binary_expression "(local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))" (parenthesized_expression "(local_74 == 0)" ( (binary_expression "local_74 == 0" identifier == number_literal) )) && (parenthesized_expression "(((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))" ( (parenthesized_expression "((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5))" ( (binary_expression "(local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)" (parenthesized_expression "(local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0))" ( (binary_expression "local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)" (binary_expression "local_84 == (char *)0x2" identifier == (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "((_DAT_001c45e2 & 0xc000) != 0)" ( (binary_expression "(_DAT_001c45e2 & 0xc000) != 0" (parenthesized_expression "(_DAT_001c45e2 & 0xc000)" ( (binary_expression "_DAT_001c45e2 & 0xc000" identifier & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)" ( (comma_expression "bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5" (assignment_expression "bVar3 = true" identifier = true) , (binary_expression "*(int *)(*(int *)(iVar19 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(iVar19 + 4) + 4)" * (cast_expression "(int *)(*(int *)(iVar19 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 4) + 4)" ( (binary_expression "*(int *)(iVar19 + 4) + 4" (pointer_expression "*(int *)(iVar19 + 4)" * (cast_expression "(int *)(iVar19 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 4)" ( (binary_expression "iVar19 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal)) ))) )) ))) )) (compound_statement "{\n                local_74 = iVar19;\n              }" { (expression_statement "local_74 = iVar19;" (assignment_expression "local_74 = iVar19" identifier = identifier) ;) })) })) })) (if_statement "if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;" if (parenthesized_expression "(local_78 != (undefined4 *)0x2)" ( (binary_expression "local_78 != (undefined4 *)0x2" identifier != (cast_expression "(undefined4 *)0x2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00040ee8;" goto statement_identifier ;)) (expression_statement "iVar19 = *(int *)(iVar19 + 0x9c);" (assignment_expression "iVar19 = *(int *)(iVar19 + 0x9c)" identifier = (pointer_expression "*(int *)(iVar19 + 0x9c)" * (cast_expression "(int *)(iVar19 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x9c)" ( (binary_expression "iVar19 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "_DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;" (assignment_expression "_DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000" identifier = (binary_expression "_DAT_001c45e2 & 0x3fff | 0x8000" (binary_expression "_DAT_001c45e2 & 0x3fff" identifier & number_literal) | number_literal)) ;) }) while (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }" statement_identifier : (if_statement "if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }" if (parenthesized_expression "((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0))" ( (binary_expression "(local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)" (parenthesized_expression "(local_74 == 0)" ( (binary_expression "local_74 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)" ( (comma_expression "iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0" (assignment_expression "iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8)" identifier = (call_expression "bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8)" identifier (argument_list "(local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8)" ( identifier , (string_literal "".eh_frame_hdr"" " string_content ") , (binary_expression "*(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8" (pointer_expression "*(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30)" * (cast_expression "(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30)" ( (binary_expression "*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30" (pointer_expression "*(int *)(*(int *)(local_74 + 4) + 0x1c0)" * (cast_expression "(int *)(*(int *)(local_74 + 4) + 0x1c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_74 + 4) + 0x1c0)" ( (binary_expression "*(int *)(local_74 + 4) + 0x1c0" (pointer_expression "*(int *)(local_74 + 4)" * (cast_expression "(int *)(local_74 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_74 + 4)" ( (binary_expression "local_74 + 4" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) | number_literal) )))) , (binary_expression "iVar19 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }" { (if_statement "if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }" { (expression_statement "uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);" (assignment_expression "uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5)" identifier = (call_expression "dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5)" identifier (argument_list "(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5)" ( number_literal , (string_literal ""%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034dc0(uVar9);" (call_expression "FUN_00034dc0(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) })) }) (else_clause "else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }" else (compound_statement "{\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }" { (expression_statement "*(undefined4 *)(iVar19 + 0x58) = 2;" (assignment_expression "*(undefined4 *)(iVar19 + 0x58) = 2" (pointer_expression "*(undefined4 *)(iVar19 + 0x58)" * (cast_expression "(undefined4 *)(iVar19 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x58)" ( (binary_expression "iVar19 + 0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(iVar8 + 0xd0) = iVar19;" (assignment_expression "*(int *)(iVar8 + 0xd0) = iVar19" (pointer_expression "*(int *)(iVar8 + 0xd0)" * (cast_expression "(int *)(iVar8 + 0xd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xd0)" ( (binary_expression "iVar8 + 0xd0" identifier + number_literal) )))) = identifier) ;) })))) })) (expression_statement "puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);" (assignment_expression "puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0)" identifier = (cast_expression "(undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0)" identifier (argument_list "(DAT_001c4614,&DAT_001c45e0)" ( identifier , (pointer_expression "&DAT_001c45e0" & identifier) ))))) ;) (expression_statement "local_78 = puVar6;" (assignment_expression "local_78 = puVar6" identifier = identifier) ;) (if_statement "if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }" if (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" ( (binary_expression "puVar6 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }" { (labeled_statement "LAB_000407c0:\n        puVar1 = puVar6;" statement_identifier : (expression_statement "puVar1 = puVar6;" (assignment_expression "puVar1 = puVar6" identifier = identifier) ;)) (if_statement "if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }" if (parenthesized_expression "((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0))))))" ( (binary_expression "(local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))" (parenthesized_expression "(local_78[1] == 0)" ( (binary_expression "local_78[1] == 0" (subscript_expression "local_78[1]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))" ( (parenthesized_expression "(uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0))))" ( (comma_expression "uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))" (assignment_expression "uVar7 = bfd_elf_get_dyn_lib_class(local_78[1])" identifier = (call_expression "bfd_elf_get_dyn_lib_class(local_78[1])" identifier (argument_list "(local_78[1])" ( (subscript_expression "local_78[1]" identifier [ number_literal ]) )))) , (binary_expression "(uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))" (binary_expression "(uVar7 & 1) == 0" (parenthesized_expression "(uVar7 & 1)" ( (binary_expression "uVar7 & 1" identifier & number_literal) )) == number_literal) && (parenthesized_expression "(((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))" ( (parenthesized_expression "((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0))" ( (binary_expression "(local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)" (parenthesized_expression "(local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80))" ( (binary_expression "local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)" (binary_expression "local_78[1] == 0" (subscript_expression "local_78[1]" identifier [ number_literal ]) == number_literal) || (parenthesized_expression "((_DAT_001c45e2 & 0x180) != 0x80)" ( (binary_expression "(_DAT_001c45e2 & 0x180) != 0x80" (parenthesized_expression "(_DAT_001c45e2 & 0x180)" ( (binary_expression "_DAT_001c45e2 & 0x180" identifier & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)" ( (comma_expression "uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0" (assignment_expression "uVar7 = bfd_elf_get_dyn_lib_class(local_78[1])" identifier = (call_expression "bfd_elf_get_dyn_lib_class(local_78[1])" identifier (argument_list "(local_78[1])" ( (subscript_expression "local_78[1]" identifier [ number_literal ]) )))) , (binary_expression "(uVar7 & 4) == 0" (parenthesized_expression "(uVar7 & 4)" ( (binary_expression "uVar7 & 4" identifier & number_literal) )) == number_literal)) ))) )) )))) )) ))) )) (compound_statement "{\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }" { (for_statement "for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }" for ( ; (binary_expression "puVar1 != local_78" identifier != identifier) ; (assignment_expression "puVar1 = (undefined4 *)*puVar1" identifier = (cast_expression "(undefined4 *)*puVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ) (compound_statement "{\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }" { (if_statement "if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }" if (parenthesized_expression "(((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0))" ( (binary_expression "((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)" (parenthesized_expression "((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0))" ( (binary_expression "(puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)" (parenthesized_expression "(puVar1[1] == 0)" ( (binary_expression "puVar1[1] == 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "(uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)" ( (comma_expression "uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0" (assignment_expression "uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1])" identifier = (call_expression "bfd_elf_get_dyn_lib_class(puVar1[1])" identifier (argument_list "(puVar1[1])" ( (subscript_expression "puVar1[1]" identifier [ number_literal ]) )))) , (binary_expression "(uVar7 & 1) == 0" (parenthesized_expression "(uVar7 & 1)" ( (binary_expression "uVar7 & 1" identifier & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "(iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)" ( (comma_expression "iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0" (assignment_expression "iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2])" identifier = (call_expression "strcmp((char *)puVar1[2],(char *)local_78[2])" identifier (argument_list "((char *)puVar1[2],(char *)local_78[2])" ( (cast_expression "(char *)puVar1[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[2]" identifier [ number_literal ])) , (cast_expression "(char *)local_78[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_78[2]" identifier [ number_literal ])) )))) , (binary_expression "iVar8 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }" { (if_statement "if (puVar1 != local_78) goto LAB_00040900;" if (parenthesized_expression "(puVar1 != local_78)" ( (binary_expression "puVar1 != local_78" identifier != identifier) )) (goto_statement "goto LAB_00040900;" goto statement_identifier ;)) (break_statement "break;" break ;) })) })) (expression_statement "DAT_001c3bf8 = 0;" (assignment_expression "DAT_001c3bf8 = 0" identifier = number_literal) ;) (expression_statement "DAT_001c3c60 = local_78;" (assignment_expression "DAT_001c3c60 = local_78" identifier = identifier) ;) (expression_statement "DAT_001c3c64 = FUN_00040150;" (assignment_expression "DAT_001c3c64 = FUN_00040150" identifier = identifier) ;) (expression_statement "FUN_000276c0(FUN_0003d480);" (call_expression "FUN_000276c0(FUN_0003d480)" identifier (argument_list "(FUN_0003d480)" ( identifier ))) ;) (if_statement "if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }" if (parenthesized_expression "((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0))" ( (binary_expression "(DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)" (parenthesized_expression "(DAT_001c3bf8 == 0)" ( (binary_expression "DAT_001c3bf8 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)" ( (comma_expression "uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0" (assignment_expression "uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10))" identifier = (call_expression "bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10))" identifier (argument_list "(*(undefined4 *)(DAT_001c3bf8 + 0x10))" ( (pointer_expression "*(undefined4 *)(DAT_001c3bf8 + 0x10)" * (cast_expression "(undefined4 *)(DAT_001c3bf8 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001c3bf8 + 0x10)" ( (binary_expression "DAT_001c3bf8 + 0x10" identifier + number_literal) )))) )))) , (binary_expression "(uVar7 & 1) != 0" (parenthesized_expression "(uVar7 & 1)" ( (binary_expression "uVar7 & 1" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }" { (expression_statement "puVar1 = (undefined4 *)local_78[1];" (assignment_expression "puVar1 = (undefined4 *)local_78[1]" identifier = (cast_expression "(undefined4 *)local_78[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_78[1]" identifier [ number_literal ]))) ;) (expression_statement "pcVar5 = (char *)local_78[2];" (assignment_expression "pcVar5 = (char *)local_78[2]" identifier = (cast_expression "(char *)local_78[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_78[2]" identifier [ number_literal ]))) ;) (if_statement "if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }" if (parenthesized_expression "(DAT_001c475c != 0)" ( (binary_expression "DAT_001c475c != 0" identifier != number_literal) )) (compound_statement "{\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }" { (expression_statement "uVar9 = dcgettext(0,"%s needed by %pB\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%s needed by %pB\n",5)" identifier = (call_expression "dcgettext(0,"%s needed by %pB\n",5)" identifier (argument_list "(0,"%s needed by %pB\n",5)" ( number_literal , (string_literal ""%s needed by %pB\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d90(uVar9,pcVar5,puVar1);" (call_expression "FUN_00034d90(uVar9,pcVar5,puVar1)" identifier (argument_list "(uVar9,pcVar5,puVar1)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }" if (parenthesized_expression "((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0))" ( (binary_expression "(DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)" (parenthesized_expression "(DAT_001c3bf8 == 0)" ( (binary_expression "DAT_001c3bf8 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar8 = FUN_00040250(), iVar8 == 0)" ( (comma_expression "iVar8 = FUN_00040250(), iVar8 == 0" (assignment_expression "iVar8 = FUN_00040250()" identifier = (call_expression "FUN_00040250()" identifier (argument_list "()" ( )))) , (binary_expression "iVar8 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }" { (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (do_statement "do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );" do (compound_statement "{\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              }" { (expression_statement "pcVar22 = DAT_001c46c8;" (assignment_expression "pcVar22 = DAT_001c46c8" identifier = identifier) ;) (if_statement "if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }" if (parenthesized_expression "(*pcVar5 == '/')" ( (binary_expression "*pcVar5 == '/'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }" { (expression_statement "iVar8 = FUN_00040250();" (assignment_expression "iVar8 = FUN_00040250()" identifier = (call_expression "FUN_00040250()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar8 != 0) break;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) }) (else_clause "else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }" else (if_statement "if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }" if (parenthesized_expression "((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0'))" ( (binary_expression "(DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')" (parenthesized_expression "(DAT_001c46c8 != (char *)0x0)" ( (binary_expression "DAT_001c46c8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*DAT_001c46c8 != '\0')" ( (binary_expression "*DAT_001c46c8 != '\0'" (pointer_expression "*DAT_001c46c8" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }" { (expression_statement "sVar10 = strlen(pcVar5);" (assignment_expression "sVar10 = strlen(pcVar5)" identifier = (call_expression "strlen(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (do_statement "do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );" do (compound_statement "{\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  }" { (expression_statement "local_68 = strchr(pcVar22,(int)DAT_001c4728);" (assignment_expression "local_68 = strchr(pcVar22,(int)DAT_001c4728)" identifier = (call_expression "strchr(pcVar22,(int)DAT_001c4728)" identifier (argument_list "(pcVar22,(int)DAT_001c4728)" ( identifier , (cast_expression "(int)DAT_001c4728" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (if_statement "if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }" if (parenthesized_expression "(local_68 == (char *)0x0)" ( (binary_expression "local_68 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }" { (expression_statement "sVar25 = strlen(pcVar22);" (assignment_expression "sVar25 = strlen(pcVar22)" identifier = (call_expression "strlen(pcVar22)" identifier (argument_list "(pcVar22)" ( identifier )))) ;) (expression_statement "local_68 = pcVar22 + sVar25;" (assignment_expression "local_68 = pcVar22 + sVar25" identifier = (binary_expression "pcVar22 + sVar25" identifier + identifier)) ;) })) (expression_statement "sVar25 = (int)local_68 - (int)pcVar22;" (assignment_expression "sVar25 = (int)local_68 - (int)pcVar22" identifier = (binary_expression "(int)local_68 - (int)pcVar22" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar22" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);" (assignment_expression "local_84 = (char *)xmalloc(sVar10 + 2 + sVar25)" identifier = (cast_expression "(char *)xmalloc(sVar10 + 2 + sVar25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar10 + 2 + sVar25)" identifier (argument_list "(sVar10 + 2 + sVar25)" ( (binary_expression "sVar10 + 2 + sVar25" (binary_expression "sVar10 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "pcVar16 = local_84;" (assignment_expression "pcVar16 = local_84" identifier = identifier) ;) (if_statement "if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }" if (parenthesized_expression "(pcVar22 != local_68)" ( (binary_expression "pcVar22 != local_68" identifier != identifier) )) (compound_statement "{\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }" { (expression_statement "memcpy(local_84,pcVar22,sVar25);" (call_expression "memcpy(local_84,pcVar22,sVar25)" identifier (argument_list "(local_84,pcVar22,sVar25)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_84[sVar25] = '/';" (assignment_expression "local_84[sVar25] = '/'" (subscript_expression "local_84[sVar25]" identifier [ identifier ]) = (char_literal "'/'" ' character ')) ;) (expression_statement "pcVar16 = local_84 + sVar25 + 1;" (assignment_expression "pcVar16 = local_84 + sVar25 + 1" identifier = (binary_expression "local_84 + sVar25 + 1" (binary_expression "local_84 + sVar25" identifier + identifier) + number_literal)) ;) })) (expression_statement "pcVar22 = (char *)0x0;" (assignment_expression "pcVar22 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "strcpy(pcVar16,pcVar5);" (call_expression "strcpy(pcVar16,pcVar5)" identifier (argument_list "(pcVar16,pcVar5)" ( identifier , identifier ))) ;) (while_statement "while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }" while (parenthesized_expression "(pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0)" ( (comma_expression "pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0" (assignment_expression "pcVar22 = strchr(local_84 + (int)pcVar22,0x24)" identifier = (call_expression "strchr(local_84 + (int)pcVar22,0x24)" identifier (argument_list "(local_84 + (int)pcVar22,0x24)" ( (binary_expression "local_84 + (int)pcVar22" identifier + (cast_expression "(int)pcVar22" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal )))) , (binary_expression "pcVar22 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }" { (expression_statement "pcVar16 = strchr(pcVar22,0x2f);" (assignment_expression "pcVar16 = strchr(pcVar22,0x2f)" identifier = (call_expression "strchr(pcVar22,0x2f)" identifier (argument_list "(pcVar22,0x2f)" ( identifier , number_literal )))) ;) (expression_statement "sVar25 = strlen(local_84);" (assignment_expression "sVar25 = strlen(local_84)" identifier = (call_expression "strlen(local_84)" identifier (argument_list "(local_84)" ( identifier )))) ;) (if_statement "if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }" if (parenthesized_expression "(pcVar16 != (char *)0x0)" ( (binary_expression "pcVar16 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        *pcVar16 = '\0';\n                      }" { (expression_statement "*pcVar16 = '\0';" (assignment_expression "*pcVar16 = '\0'" (pointer_expression "*pcVar16" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "bVar20 = pcVar22[1];" (assignment_expression "bVar20 = pcVar22[1]" identifier = (subscript_expression "pcVar22[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar15 = pcVar22 + 1;" (assignment_expression "pcVar15 = pcVar22 + 1" identifier = (binary_expression "pcVar22 + 1" identifier + number_literal)) ;) (if_statement "if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }" if (parenthesized_expression "(bVar20 == 0x7b)" ( (binary_expression "bVar20 == 0x7b" identifier == number_literal) )) (compound_statement "{\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }" { (expression_statement "bVar20 = pcVar22[2];" (assignment_expression "bVar20 = pcVar22[2]" identifier = (subscript_expression "pcVar22[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar15 = pcVar22 + 2;" (assignment_expression "pcVar15 = pcVar22 + 2" identifier = (binary_expression "pcVar22 + 2" identifier + number_literal)) ;) })) (expression_statement "pbVar17 = (byte *)(pcVar15 + 1);" (assignment_expression "pbVar17 = (byte *)(pcVar15 + 1)" identifier = (cast_expression "(byte *)(pcVar15 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 1)" ( (binary_expression "pcVar15 + 1" identifier + number_literal) )))) ;) (expression_statement "bVar29 = bVar20 < 0x4c;" (assignment_expression "bVar29 = bVar20 < 0x4c" identifier = (binary_expression "bVar20 < 0x4c" identifier < number_literal)) ;) (expression_statement "bVar30 = bVar20 == 0x4c;" (assignment_expression "bVar30 = bVar20 == 0x4c" identifier = (binary_expression "bVar20 == 0x4c" identifier == number_literal)) ;) (if_statement "if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }" if (parenthesized_expression "(bVar30)" ( identifier )) (compound_statement "{\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }" { (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar23 = pbVar17;" (assignment_expression "pbVar23 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar26 = (byte *)0x701f6;" (assignment_expression "pbVar26 = (byte *)0x701f6" identifier = (cast_expression "(byte *)0x701f6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);" do (compound_statement "{\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *pbVar23 < *pbVar26;" (assignment_expression "bVar29 = *pbVar23 < *pbVar26" identifier = (binary_expression "*pbVar23 < *pbVar26" (pointer_expression "*pbVar23" * identifier) < (pointer_expression "*pbVar26" * identifier))) ;) (expression_statement "bVar30 = *pbVar23 == *pbVar26;" (assignment_expression "bVar30 = *pbVar23 == *pbVar26" identifier = (binary_expression "*pbVar23 == *pbVar26" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*pbVar26" * identifier))) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar26 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar26 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar30)" ( identifier )) ;) (expression_statement "bVar28 = false;" (assignment_expression "bVar28 = false" identifier = false) ;) (expression_statement "bVar29 = (!bVar29 && !bVar30) == bVar29;" (assignment_expression "bVar29 = (!bVar29 && !bVar30) == bVar29" identifier = (binary_expression "(!bVar29 && !bVar30) == bVar29" (parenthesized_expression "(!bVar29 && !bVar30)" ( (binary_expression "!bVar29 && !bVar30" (unary_expression "!bVar29" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }" if (parenthesized_expression "(!bVar29)" ( (unary_expression "!bVar29" ! identifier) )) (compound_statement "{\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }" { (expression_statement "iVar8 = 4;" (assignment_expression "iVar8 = 4" identifier = number_literal) ;) (expression_statement "pbVar23 = &DAT_000af890;" (assignment_expression "pbVar23 = &DAT_000af890" identifier = (pointer_expression "&DAT_000af890" & identifier)) ;) (do_statement "do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);" do (compound_statement "{\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar28 = *pbVar17 < *pbVar23;" (assignment_expression "bVar28 = *pbVar17 < *pbVar23" identifier = (binary_expression "*pbVar17 < *pbVar23" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "bVar29 = *pbVar17 == *pbVar23;" (assignment_expression "bVar29 = *pbVar17 == *pbVar23" identifier = (binary_expression "*pbVar17 == *pbVar23" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar29)" ( identifier )) ;) (if_statement "if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;" if (parenthesized_expression "((!bVar28 && !bVar29) != bVar28)" ( (binary_expression "(!bVar28 && !bVar29) != bVar28" (parenthesized_expression "(!bVar28 && !bVar29)" ( (binary_expression "!bVar28 && !bVar29" (unary_expression "!bVar28" ! identifier) && (unary_expression "!bVar29" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00040c47;" goto statement_identifier ;)) })) (expression_statement "sVar13 = 5;" (assignment_expression "sVar13 = 5" identifier = number_literal) ;) (expression_statement "pcVar27 = (char *)0x0;" (assignment_expression "pcVar27 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar15 = "lib64";" (assignment_expression "pcVar15 = "lib64"" identifier = (string_literal ""lib64"" " string_content ")) ;) (labeled_statement "LAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);" statement_identifier : (expression_statement "pcVar12 = (char *)xmalloc(sVar13 + sVar25);" (assignment_expression "pcVar12 = (char *)xmalloc(sVar13 + sVar25)" identifier = (cast_expression "(char *)xmalloc(sVar13 + sVar25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar13 + sVar25)" identifier (argument_list "(sVar13 + sVar25)" ( (binary_expression "sVar13 + sVar25" identifier + identifier) ))))) ;)) (expression_statement "iVar8 = (int)pcVar22 - (int)local_84;" (assignment_expression "iVar8 = (int)pcVar22 - (int)local_84" identifier = (binary_expression "(int)pcVar22 - (int)local_84" (cast_expression "(int)pcVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }" if (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }" { (expression_statement "sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);" (call_expression "sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15)" identifier (argument_list "(pcVar12,"%.*s%s",iVar8,local_84,pcVar15)" ( identifier , (string_literal ""%.*s%s"" " string_content ") , identifier , identifier , identifier ))) ;) (expression_statement "sVar25 = strlen(pcVar15);" (assignment_expression "sVar25 = strlen(pcVar15)" identifier = (call_expression "strlen(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier )))) ;) (expression_statement "pcVar22 = (char *)(iVar8 + sVar25);" (assignment_expression "pcVar22 = (char *)(iVar8 + sVar25)" identifier = (cast_expression "(char *)(iVar8 + sVar25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + sVar25)" ( (binary_expression "iVar8 + sVar25" identifier + identifier) )))) ;) }) (else_clause "else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }" else (compound_statement "{\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }" { (expression_statement "sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);" (call_expression "sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1)" identifier (argument_list "(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1)" ( identifier , (string_literal ""%.*s%s/%s"" " string_content ") , identifier , identifier , identifier , (binary_expression "pcVar16 + 1" identifier + number_literal) ))) ;) (expression_statement "sVar25 = strlen(pcVar15);" (assignment_expression "sVar25 = strlen(pcVar15)" identifier = (call_expression "strlen(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier )))) ;) (expression_statement "pcVar22 = (char *)(iVar8 + 1 + sVar25);" (assignment_expression "pcVar22 = (char *)(iVar8 + 1 + sVar25)" identifier = (cast_expression "(char *)(iVar8 + 1 + sVar25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 1 + sVar25)" ( (binary_expression "iVar8 + 1 + sVar25" (binary_expression "iVar8 + 1" identifier + number_literal) + identifier) )))) ;) }))) (expression_statement "free(local_84);" (call_expression "free(local_84)" identifier (argument_list "(local_84)" ( identifier ))) ;) (expression_statement "local_84 = pcVar12;" (assignment_expression "local_84 = pcVar12" identifier = identifier) ;) }) (else_clause "else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }" else (compound_statement "{\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }" { (expression_statement "bVar29 = bVar20 < 0x4f;" (assignment_expression "bVar29 = bVar20 < 0x4f" identifier = (binary_expression "bVar20 < 0x4f" identifier < number_literal)) ;) (expression_statement "bVar30 = bVar20 == 0x4f;" (assignment_expression "bVar30 = bVar20 == 0x4f" identifier = (binary_expression "bVar20 == 0x4f" identifier == number_literal)) ;) (if_statement "if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }" if (parenthesized_expression "(bVar30)" ( identifier )) (compound_statement "{\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }" { (expression_statement "iVar8 = 6;" (assignment_expression "iVar8 = 6" identifier = number_literal) ;) (expression_statement "pbVar23 = pbVar17;" (assignment_expression "pbVar23 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar26 = (byte *)0x704cc;" (assignment_expression "pbVar26 = (byte *)0x704cc" identifier = (cast_expression "(byte *)0x704cc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);" do (compound_statement "{\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *pbVar23 < *pbVar26;" (assignment_expression "bVar29 = *pbVar23 < *pbVar26" identifier = (binary_expression "*pbVar23 < *pbVar26" (pointer_expression "*pbVar23" * identifier) < (pointer_expression "*pbVar26" * identifier))) ;) (expression_statement "bVar30 = *pbVar23 == *pbVar26;" (assignment_expression "bVar30 = *pbVar23 == *pbVar26" identifier = (binary_expression "*pbVar23 == *pbVar26" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*pbVar26" * identifier))) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar26 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar26 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar30)" ( identifier )) ;) (expression_statement "bVar28 = false;" (assignment_expression "bVar28 = false" identifier = false) ;) (expression_statement "bVar29 = (!bVar29 && !bVar30) == bVar29;" (assignment_expression "bVar29 = (!bVar29 && !bVar30) == bVar29" identifier = (binary_expression "(!bVar29 && !bVar30) == bVar29" (parenthesized_expression "(!bVar29 && !bVar30)" ( (binary_expression "!bVar29 && !bVar30" (unary_expression "!bVar29" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }" if (parenthesized_expression "(!bVar29)" ( (unary_expression "!bVar29" ! identifier) )) (compound_statement "{\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }" { (expression_statement "iVar8 = 7;" (assignment_expression "iVar8 = 7" identifier = number_literal) ;) (expression_statement "pbVar23 = (byte *)"RIGIN}";" (assignment_expression "pbVar23 = (byte *)"RIGIN}"" identifier = (cast_expression "(byte *)"RIGIN}"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""RIGIN}"" " string_content "))) ;) (do_statement "do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);" do (compound_statement "{\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar28 = *pbVar17 < *pbVar23;" (assignment_expression "bVar28 = *pbVar17 < *pbVar23" identifier = (binary_expression "*pbVar17 < *pbVar23" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "bVar29 = *pbVar17 == *pbVar23;" (assignment_expression "bVar29 = *pbVar17 == *pbVar23" identifier = (binary_expression "*pbVar17 == *pbVar23" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar29)" ( identifier )) ;) (if_statement "if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;" if (parenthesized_expression "((!bVar28 && !bVar29) != bVar28)" ( (binary_expression "(!bVar28 && !bVar29) != bVar28" (parenthesized_expression "(!bVar28 && !bVar29)" ( (binary_expression "!bVar28 && !bVar29" (unary_expression "!bVar28" ! identifier) && (unary_expression "!bVar29" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00040c47;" goto statement_identifier ;)) })) (expression_statement "puVar11 = puVar1;" (assignment_expression "puVar11 = puVar1" identifier = identifier) ;) (if_statement "if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }" if (parenthesized_expression "(((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0))" ( (binary_expression "((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)" (parenthesized_expression "((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0))" ( (binary_expression "(puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)" (parenthesized_expression "(puVar1 != (undefined4 *)0x0)" ( (binary_expression "puVar1 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)" ( (comma_expression "puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0" (assignment_expression "puVar11 = DAT_001c4614" identifier = identifier) , (binary_expression "DAT_001c4614 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)" ( (comma_expression "pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0" (assignment_expression "pcVar27 = (char *)*puVar11" identifier = (cast_expression "(char *)*puVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar11" * identifier))) , (binary_expression "pcVar27 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }" { (if_statement "if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }" if (parenthesized_expression "(*pcVar27 == '/')" ( (binary_expression "*pcVar27 == '/'" (pointer_expression "*pcVar27" * identifier) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }" { (expression_statement "pcVar15 = (char *)xstrdup(pcVar27);" (assignment_expression "pcVar15 = (char *)xstrdup(pcVar27)" identifier = (cast_expression "(char *)xstrdup(pcVar27)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier ))))) ;) }) (else_clause "else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }" else (compound_statement "{\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }" { (expression_statement "pcVar12 = (char *)getpwd();" (assignment_expression "pcVar12 = (char *)getpwd()" identifier = (cast_expression "(char *)getpwd()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "getpwd()" identifier (argument_list "()" ( ))))) ;) (expression_statement "sVar13 = strlen(pcVar27);" (assignment_expression "sVar13 = strlen(pcVar27)" identifier = (call_expression "strlen(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier )))) ;) (expression_statement "sVar14 = strlen(pcVar12);" (assignment_expression "sVar14 = strlen(pcVar12)" identifier = (call_expression "strlen(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier )))) ;) (expression_statement "pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);" (assignment_expression "pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14)" identifier = (cast_expression "(char *)xmalloc(sVar13 + 2 + sVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar13 + 2 + sVar14)" identifier (argument_list "(sVar13 + 2 + sVar14)" ( (binary_expression "sVar13 + 2 + sVar14" (binary_expression "sVar13 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);" (call_expression "sprintf(pcVar15,"%s/%s",pcVar12,pcVar27)" identifier (argument_list "(pcVar15,"%s/%s",pcVar12,pcVar27)" ( identifier , (string_literal ""%s/%s"" " string_content ") , identifier , identifier ))) ;) }))) (expression_statement "pcVar27 = strrchr(pcVar15,0x2f);" (assignment_expression "pcVar27 = strrchr(pcVar15,0x2f)" identifier = (call_expression "strrchr(pcVar15,0x2f)" identifier (argument_list "(pcVar15,0x2f)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }" if (parenthesized_expression "(pcVar27 != (char *)0x0)" ( (binary_expression "pcVar27 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                              *pcVar27 = '\0';\n                            }" { (expression_statement "*pcVar27 = '\0';" (assignment_expression "*pcVar27 = '\0'" (pointer_expression "*pcVar27" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "sVar13 = strlen(pcVar15);" (assignment_expression "sVar13 = strlen(pcVar15)" identifier = (call_expression "strlen(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier )))) ;) (expression_statement "pcVar27 = pcVar15;" (assignment_expression "pcVar27 = pcVar15" identifier = identifier) ;) (goto_statement "goto LAB_00040b60;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }" statement_identifier : (if_statement "if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }" if (parenthesized_expression "(DAT_001c475c != 0)" ( (binary_expression "DAT_001c475c != 0" identifier != number_literal) )) (compound_statement "{\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }" { (expression_statement "uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);" (assignment_expression "uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5)" identifier = (call_expression "dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5)" identifier (argument_list "(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5)" ( number_literal , (string_literal ""unrecognised or unsupported token \'%s\' in search path\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d90(uVar9,pcVar22);" (call_expression "FUN_00034d90(uVar9,pcVar22)" identifier (argument_list "(uVar9,pcVar22)" ( identifier , identifier ))) ;) }))) (if_statement "if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }" if (parenthesized_expression "(pcVar16 != (char *)0x0)" ( (binary_expression "pcVar16 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          *pcVar16 = '/';\n                        }" { (expression_statement "*pcVar16 = '/';" (assignment_expression "*pcVar16 = '/'" (pointer_expression "*pcVar16" * identifier) = (char_literal "'/'" ' character ')) ;) })) (expression_statement "pcVar27 = (char *)0x0;" (assignment_expression "pcVar27 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar22 = pcVar22 + (1 - (int)local_84);" (assignment_expression "pcVar22 = pcVar22 + (1 - (int)local_84)" identifier = (binary_expression "pcVar22 + (1 - (int)local_84)" identifier + (parenthesized_expression "(1 - (int)local_84)" ( (binary_expression "1 - (int)local_84" number_literal - (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }))) (expression_statement "free(pcVar27);" (call_expression "free(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier ))) ;) })) (expression_statement "iVar8 = FUN_00040250();" (assignment_expression "iVar8 = FUN_00040250()" identifier = (call_expression "FUN_00040250()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar8 != 0) goto LAB_00040900;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00040900;" goto statement_identifier ;)) (expression_statement "free(local_84);" (call_expression "free(local_84)" identifier (argument_list "(local_84)" ( identifier ))) ;) (if_statement "if (*local_68 == '\0') break;" if (parenthesized_expression "(*local_68 == '\0')" ( (binary_expression "*local_68 == '\0'" (pointer_expression "*local_68" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "pcVar22 = local_68 + 1;" (assignment_expression "pcVar22 = local_68 + 1" identifier = (binary_expression "local_68 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))) (expression_statement "sVar10 = strlen((char *)local_78[2]);" (assignment_expression "sVar10 = strlen((char *)local_78[2])" identifier = (call_expression "strlen((char *)local_78[2])" identifier (argument_list "((char *)local_78[2])" ( (cast_expression "(char *)local_78[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_78[2]" identifier [ number_literal ])) )))) ;) (if_statement "if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }" if (parenthesized_expression "(DAT_001c4804 != (int *)0x0)" ( (binary_expression "DAT_001c4804 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }" { (expression_statement "piVar24 = DAT_001c4804;" (assignment_expression "piVar24 = DAT_001c4804" identifier = identifier) ;) (do_statement "do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);" do (compound_statement "{\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  }" { (if_statement "if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }" if (parenthesized_expression "(piVar24[2] == 0)" ( (binary_expression "piVar24[2] == 0" (subscript_expression "piVar24[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }" { (expression_statement "sVar25 = strlen((char *)piVar24[1]);" (assignment_expression "sVar25 = strlen((char *)piVar24[1])" identifier = (call_expression "strlen((char *)piVar24[1])" identifier (argument_list "((char *)piVar24[1])" ( (cast_expression "(char *)piVar24[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[1]" identifier [ number_literal ])) )))) ;) (expression_statement "pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);" (assignment_expression "pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2)" identifier = (cast_expression "(char *)xmalloc(sVar25 + sVar10 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar25 + sVar10 + 2)" identifier (argument_list "(sVar25 + sVar10 + 2)" ( (binary_expression "sVar25 + sVar10 + 2" (binary_expression "sVar25 + sVar10" identifier + identifier) + number_literal) ))))) ;) (expression_statement "sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);" (call_expression "sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2])" identifier (argument_list "(pcVar22,"%s/%s",piVar24[1],local_78[2])" ( identifier , (string_literal ""%s/%s"" " string_content ") , (subscript_expression "piVar24[1]" identifier [ number_literal ]) , (subscript_expression "local_78[2]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar8 = FUN_00040250();" (assignment_expression "iVar8 = FUN_00040250()" identifier = (call_expression "FUN_00040250()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar8 != 0) goto LAB_00040900;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00040900;" goto statement_identifier ;)) (expression_statement "free(pcVar22);" (call_expression "free(pcVar22)" identifier (argument_list "(pcVar22)" ( identifier ))) ;) })) (expression_statement "piVar24 = (int *)*piVar24;" (assignment_expression "piVar24 = (int *)*piVar24" identifier = (cast_expression "(int *)*piVar24" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar24" * identifier))) ;) }) while (parenthesized_expression "(piVar24 != (int *)0x0)" ( (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (bVar3) goto code_r0x00040e73;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto code_r0x00040e73;" goto statement_identifier ;)) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) })) (goto_statement "goto LAB_00040900;" goto statement_identifier ;) })) (labeled_statement "LAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }" statement_identifier : (if_statement "if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }" if (parenthesized_expression "(((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0))" ( (binary_expression "((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)" (parenthesized_expression "((DAT_001c45e3 & 0xc0) == 0x80)" ( (binary_expression "(DAT_001c45e3 & 0xc0) == 0x80" (parenthesized_expression "(DAT_001c45e3 & 0xc0)" ( (binary_expression "DAT_001c45e3 & 0xc0" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)" ( (comma_expression "iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0" (assignment_expression "iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0)" identifier = (call_expression "bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0)" identifier (argument_list "(0,&DAT_001c45e0)" ( number_literal , (pointer_expression "&DAT_001c45e0" & identifier) )))) , (binary_expression "iVar8 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }" { (expression_statement "uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: failed to parse EH frame entries\n",5)" identifier (argument_list "(0,"%F%P: failed to parse EH frame entries\n",5)" ( number_literal , (string_literal ""%F%P: failed to parse EH frame entries\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034dc0(uVar9);" (call_expression "FUN_00034dc0(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) }))) }))) })) (return_statement "return;" return ;) (labeled_statement "code_r0x00040e73:\n  uVar9 = local_78[1];" statement_identifier : (expression_statement "uVar9 = local_78[1];" (assignment_expression "uVar9 = local_78[1]" identifier = (subscript_expression "local_78[1]" identifier [ number_literal ])) ;)) (expression_statement "uVar2 = local_78[2];" (assignment_expression "uVar2 = local_78[2]" identifier = (subscript_expression "local_78[2]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = dcgettext(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5);" (assignment_expression "uVar18 = dcgettext(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5)" identifier = (call_expression "dcgettext(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5)" identifier (argument_list "(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5)" ( number_literal , (string_literal ""%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034dc0(uVar18,uVar2,uVar9);" (call_expression "FUN_00034dc0(uVar18,uVar2,uVar9)" identifier (argument_list "(uVar18,uVar2,uVar9)" ( identifier , identifier , identifier ))) ;) (labeled_statement "LAB_00040900:\n  local_78 = (undefined4 *)*local_78;" statement_identifier : (expression_statement "local_78 = (undefined4 *)*local_78;" (assignment_expression "local_78 = (undefined4 *)*local_78" identifier = (cast_expression "(undefined4 *)*local_78" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_78" * identifier))) ;)) (if_statement "if (local_78 == (undefined4 *)0x0) goto LAB_00040912;" if (parenthesized_expression "(local_78 == (undefined4 *)0x0)" ( (binary_expression "local_78 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00040912;" goto statement_identifier ;)) (goto_statement "goto LAB_000407c0;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid gldaarch64elf_after_open(void)\n\n{\n  int *piVar1;\n  output_elf_obj_tdata *poVar2;\n  bfd_link_needed_list **ppbVar3;\n  bfd_link_needed_list *pbVar4;\n  bfd_link_hash_table *pbVar5;\n  asection *paVar6;\n  bfd_link_needed_list *pbVar7;\n  uint uVar8;\n  int iVar9;\n  bfd_boolean bVar10;\n  char *pcVar11;\n  size_t sVar12;\n  bfd *pbVar13;\n  char *pcVar14;\n  size_t sVar15;\n  size_t sVar16;\n  char *pcVar17;\n  byte *pbVar18;\n  char *pcVar19;\n  char *pcVar20;\n  bfd_link_hash_entry *pbVar21;\n  byte bVar22;\n  bfd *pbVar23;\n  bfd_section *pbVar24;\n  byte *pbVar25;\n  search_dirs *psVar26;\n  size_t sVar27;\n  byte *pbVar28;\n  char *pcVar29;\n  bool bVar30;\n  bool bVar31;\n  bool bVar32;\n  bool bVar33;\n  byte bVar34;\n  bfd_size_type bVar35;\n  char *local_84;\n  bfd_link_needed_list *local_78;\n  bfd *local_74;\n  char *local_68;\n  dt_needed *local_64;\n  dt_needed n;\n  dt_needed nn;\n  dt_needed needed;\n  \n  bVar34 = 0;\n  after_open_default();\n  pbVar5 = link_info.hash;\n  if ((link_info.hash)->type == bfd_link_elf_hash_table) {\n    if (command_line.out_implib_filename != (char *)0x0) {\n      unlink_if_ordinary(command_line.out_implib_filename);\n      link_info.out_implib_bfd =\n           (bfd *)bfd_openw(command_line.out_implib_filename,(link_info.output_bfd)->xvec->name);\n      pcVar11 = command_line.out_implib_filename;\n      if (link_info.out_implib_bfd == (bfd *)0x0) {\n        pcVar20 = (char *)dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        einfo(pcVar20,pcVar11);\n      }\n    }\n    pbVar23 = link_info.output_bfd;\n    pbVar13 = link_info.input_bfds;\n    if (emit_note_gnu_build_id != (char *)0x0) {\n      for (; pbVar13 != (bfd *)0x0; pbVar13 = (pbVar13->link).next) {\n        if (((pbVar13->xvec->flavour == bfd_target_elf_flavour) && (pbVar13->section_count != 0)) &&\n           ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) == 0)) {\n          bVar35 = compute_build_id_size(emit_note_gnu_build_id);\n          if ((bVar35 == 0) || (bVar35 + 0x10 == 0)) {\n            pcVar11 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar6 = (asection *)\n                     bfd_make_section_with_flags\n                               (pbVar13,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (paVar6 != (asection *)0x0) {\n              paVar6->alignment_power = 2;\n              pbVar23 = link_info.output_bfd;\n              poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o;\n              (poVar2->build_id).after_write_object_contents = write_build_id;\n              pcVar11 = emit_note_gnu_build_id;\n              (poVar2->build_id).sec = paVar6;\n              (poVar2->build_id).style = pcVar11;\n              *(undefined4 *)((int)paVar6->used_by_bfd + 4) = 7;\n              paVar6->size = bVar35 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar11 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          pcVar11 = (char *)dcgettext(0,pcVar11,5);\n          einfo(pcVar11);\n          break;\n        }\n      }\n      free(emit_note_gnu_build_id);\n      emit_note_gnu_build_id = (char *)0x0;\n      pbVar23 = link_info.output_bfd;\n    }\nLAB_00040754:\n    (**(code **)((int)pbVar23->xvec->backend_data + 0x1d0))(&link_info);\n    if ((link_info._0_1_ & 3) == 2) {\n      if ((byte)link_info._5_1_ >> 7 == (~link_info._6_1_ & 1)) {\n        bfd_make_section_with_flags\n                  (link_info.input_bfds,".note.GNU-stack",(byte)link_info._5_1_ >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((link_info._4_1_ & 0x20) == 0) && (link_info.input_bfds != (bfd *)0x0)) {\n        local_78 = (bfd_link_needed_list *)0x0;\n        bVar31 = false;\n        local_74 = (bfd *)0x0;\n        pbVar13 = link_info.input_bfds;\n        do {\n          while ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            pbVar13 = (pbVar13->link).next;\n            if (pbVar13 == (bfd *)0x0) goto LAB_00040fe6;\n          }\n          pbVar24 = pbVar13->sections;\n          if (pbVar24 != (bfd_section *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar33 = pbVar24->output_section <\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              bVar30 = pbVar24->output_section ==\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              pcVar11 = local_84;\n              if (!bVar30) {\n                iVar9 = 0xf;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar30);\n                bVar32 = false;\n                bVar33 = (!bVar33 && !bVar30) == bVar33;\n                if (bVar33) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar9 = 10;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar33);\n                if (((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {\n                  pcVar11 = local_84;\n                }\n              }\n              local_84 = pcVar11;\n              pbVar24 = pbVar24->next;\n            } while (pbVar24 != (bfd_section *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pbVar7 = (bfd_link_needed_list *)local_84;\n              if ((local_78 != (bfd_link_needed_list *)0x0) &&\n                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)) {\n                if (local_84 != (char *)0x1) {\n                  pbVar13 = local_74;\n                }\n                pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5);\n                einfo(pcVar11,pbVar13);\n                break;\n              }\n              local_78 = pbVar7;\n              if ((local_74 == (bfd *)0x0) &&\n                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))) {\n                local_74 = pbVar13;\n              }\n            }\n          }\n          if (local_78 != (bfd_link_needed_list *)0x2) goto LAB_00040ee8;\n          pbVar13 = (pbVar13->link).next;\n          link_info._2_2_ = link_info._2_2_ & 0x3fff | 0x8000;\n        } while (pbVar13 != (bfd *)0x0);\nLAB_00040fe6:\n        if ((local_74 == (bfd *)0x0) ||\n           (pbVar21 = (bfd_link_hash_entry *)\n                      bfd_make_section_with_flags\n                                (local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8),\n           pbVar21 == (bfd_link_hash_entry *)0x0)) {\n          if (bVar31) {\n            pcVar11 = (char *)dcgettext(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5);\n            einfo(pcVar11);\n          }\n        }\n        else {\n          pbVar21[2].u.i.warning = (char *)0x2;\n          pbVar5[4].undefs_tail = pbVar21;\n        }\n      }\n      pbVar7 = (bfd_link_needed_list *)bfd_elf_get_needed_list(link_info.output_bfd,&link_info);\n      local_78 = pbVar7;\n      if (pbVar7 != (bfd_link_needed_list *)0x0) {\nLAB_000407c0:\n        pbVar4 = pbVar7;\n        if ((local_78->by == (bfd *)0x0) ||\n           ((uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 1) == 0 &&\n            (((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0)))))) {\n          for (; pbVar4 != local_78; pbVar4 = pbVar4->next) {\n            if (((pbVar4->by == (bfd *)0x0) ||\n                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)) &&\n               (iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0)) {\n              if (pbVar4 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          global_found = (lang_input_statement_type *)0x0;\n          global_needed = local_78;\n          real_func = gldaarch64elf_check_needed;\n          lang_for_each_input_file(aarch64_for_each_input_file_wrapper);\n          if ((global_found == (lang_input_statement_type *)0x0) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(global_found->the_bfd), (uVar8 & 1) != 0)) {\n            pbVar13 = local_78->by;\n            pcVar11 = local_78->name;\n            n.by = pbVar13;\n            n.name = pcVar11;\n            nn.by = pbVar13;\n            if (verbose != 0) {\n              pcVar20 = (char *)dcgettext(0,"%s needed by %pB\n",5);\n              info_msg(pcVar20,pcVar11,pbVar13);\n            }\n            if (global_found == (lang_input_statement_type *)0x0) {\nLAB_00040998:\n              local_64 = (dt_needed *)0x0;\n              do {\n                pcVar20 = n.name;\n                pcVar11 = command_line.rpath_link;\n                if (*n.name == '/') {\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }\n                else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }\n                sVar12 = strlen(local_78->name);\n                if (search_head != (search_dirs_type *)0x0) {\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }\n                if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;\n                local_64 = (dt_needed *)0x1;\n              } while( true );\n            }\n            nn.name = global_found->filename;\n            bVar10 = gldaarch64elf_try_needed(&nn,(int)nn.name,(dt_needed *)0x1);\n            if (bVar10 == 0) goto LAB_00040998;\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((link_info._3_1_ & 0xc0) == 0x80) &&\n         (iVar9 = bfd_elf_parse_eh_frame_entries(0,&link_info), iVar9 == 0)) {\n        pcVar11 = (char *)dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        einfo(pcVar11);\n      }\n    }\n  }\n  return;\ncode_r0x00040e73:\n  pbVar13 = local_78->by;\n  pcVar11 = local_78->name;\n  pcVar20 = (char *)dcgettext(0,\n                              "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                              ,5);\n  einfo(pcVar20,pcVar11,pbVar13);\nLAB_00040900:\n  ppbVar3 = &local_78->next;\n  local_78 = *ppbVar3;\n  if (*ppbVar3 == (bfd_link_needed_list *)0x0) goto LAB_00040912;\n  goto LAB_000407c0;\n}\n\n" comment comment (function_definition "void gldaarch64elf_after_open(void)\n\n{\n  int *piVar1;\n  output_elf_obj_tdata *poVar2;\n  bfd_link_needed_list **ppbVar3;\n  bfd_link_needed_list *pbVar4;\n  bfd_link_hash_table *pbVar5;\n  asection *paVar6;\n  bfd_link_needed_list *pbVar7;\n  uint uVar8;\n  int iVar9;\n  bfd_boolean bVar10;\n  char *pcVar11;\n  size_t sVar12;\n  bfd *pbVar13;\n  char *pcVar14;\n  size_t sVar15;\n  size_t sVar16;\n  char *pcVar17;\n  byte *pbVar18;\n  char *pcVar19;\n  char *pcVar20;\n  bfd_link_hash_entry *pbVar21;\n  byte bVar22;\n  bfd *pbVar23;\n  bfd_section *pbVar24;\n  byte *pbVar25;\n  search_dirs *psVar26;\n  size_t sVar27;\n  byte *pbVar28;\n  char *pcVar29;\n  bool bVar30;\n  bool bVar31;\n  bool bVar32;\n  bool bVar33;\n  byte bVar34;\n  bfd_size_type bVar35;\n  char *local_84;\n  bfd_link_needed_list *local_78;\n  bfd *local_74;\n  char *local_68;\n  dt_needed *local_64;\n  dt_needed n;\n  dt_needed nn;\n  dt_needed needed;\n  \n  bVar34 = 0;\n  after_open_default();\n  pbVar5 = link_info.hash;\n  if ((link_info.hash)->type == bfd_link_elf_hash_table) {\n    if (command_line.out_implib_filename != (char *)0x0) {\n      unlink_if_ordinary(command_line.out_implib_filename);\n      link_info.out_implib_bfd =\n           (bfd *)bfd_openw(command_line.out_implib_filename,(link_info.output_bfd)->xvec->name);\n      pcVar11 = command_line.out_implib_filename;\n      if (link_info.out_implib_bfd == (bfd *)0x0) {\n        pcVar20 = (char *)dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        einfo(pcVar20,pcVar11);\n      }\n    }\n    pbVar23 = link_info.output_bfd;\n    pbVar13 = link_info.input_bfds;\n    if (emit_note_gnu_build_id != (char *)0x0) {\n      for (; pbVar13 != (bfd *)0x0; pbVar13 = (pbVar13->link).next) {\n        if (((pbVar13->xvec->flavour == bfd_target_elf_flavour) && (pbVar13->section_count != 0)) &&\n           ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) == 0)) {\n          bVar35 = compute_build_id_size(emit_note_gnu_build_id);\n          if ((bVar35 == 0) || (bVar35 + 0x10 == 0)) {\n            pcVar11 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar6 = (asection *)\n                     bfd_make_section_with_flags\n                               (pbVar13,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (paVar6 != (asection *)0x0) {\n              paVar6->alignment_power = 2;\n              pbVar23 = link_info.output_bfd;\n              poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o;\n              (poVar2->build_id).after_write_object_contents = write_build_id;\n              pcVar11 = emit_note_gnu_build_id;\n              (poVar2->build_id).sec = paVar6;\n              (poVar2->build_id).style = pcVar11;\n              *(undefined4 *)((int)paVar6->used_by_bfd + 4) = 7;\n              paVar6->size = bVar35 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar11 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          pcVar11 = (char *)dcgettext(0,pcVar11,5);\n          einfo(pcVar11);\n          break;\n        }\n      }\n      free(emit_note_gnu_build_id);\n      emit_note_gnu_build_id = (char *)0x0;\n      pbVar23 = link_info.output_bfd;\n    }\nLAB_00040754:\n    (**(code **)((int)pbVar23->xvec->backend_data + 0x1d0))(&link_info);\n    if ((link_info._0_1_ & 3) == 2) {\n      if ((byte)link_info._5_1_ >> 7 == (~link_info._6_1_ & 1)) {\n        bfd_make_section_with_flags\n                  (link_info.input_bfds,".note.GNU-stack",(byte)link_info._5_1_ >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((link_info._4_1_ & 0x20) == 0) && (link_info.input_bfds != (bfd *)0x0)) {\n        local_78 = (bfd_link_needed_list *)0x0;\n        bVar31 = false;\n        local_74 = (bfd *)0x0;\n        pbVar13 = link_info.input_bfds;\n        do {\n          while ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            pbVar13 = (pbVar13->link).next;\n            if (pbVar13 == (bfd *)0x0) goto LAB_00040fe6;\n          }\n          pbVar24 = pbVar13->sections;\n          if (pbVar24 != (bfd_section *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar33 = pbVar24->output_section <\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              bVar30 = pbVar24->output_section ==\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              pcVar11 = local_84;\n              if (!bVar30) {\n                iVar9 = 0xf;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar30);\n                bVar32 = false;\n                bVar33 = (!bVar33 && !bVar30) == bVar33;\n                if (bVar33) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar9 = 10;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar33);\n                if (((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {\n                  pcVar11 = local_84;\n                }\n              }\n              local_84 = pcVar11;\n              pbVar24 = pbVar24->next;\n            } while (pbVar24 != (bfd_section *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pbVar7 = (bfd_link_needed_list *)local_84;\n              if ((local_78 != (bfd_link_needed_list *)0x0) &&\n                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)) {\n                if (local_84 != (char *)0x1) {\n                  pbVar13 = local_74;\n                }\n                pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5);\n                einfo(pcVar11,pbVar13);\n                break;\n              }\n              local_78 = pbVar7;\n              if ((local_74 == (bfd *)0x0) &&\n                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))) {\n                local_74 = pbVar13;\n              }\n            }\n          }\n          if (local_78 != (bfd_link_needed_list *)0x2) goto LAB_00040ee8;\n          pbVar13 = (pbVar13->link).next;\n          link_info._2_2_ = link_info._2_2_ & 0x3fff | 0x8000;\n        } while (pbVar13 != (bfd *)0x0);\nLAB_00040fe6:\n        if ((local_74 == (bfd *)0x0) ||\n           (pbVar21 = (bfd_link_hash_entry *)\n                      bfd_make_section_with_flags\n                                (local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8),\n           pbVar21 == (bfd_link_hash_entry *)0x0)) {\n          if (bVar31) {\n            pcVar11 = (char *)dcgettext(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5);\n            einfo(pcVar11);\n          }\n        }\n        else {\n          pbVar21[2].u.i.warning = (char *)0x2;\n          pbVar5[4].undefs_tail = pbVar21;\n        }\n      }\n      pbVar7 = (bfd_link_needed_list *)bfd_elf_get_needed_list(link_info.output_bfd,&link_info);\n      local_78 = pbVar7;\n      if (pbVar7 != (bfd_link_needed_list *)0x0) {\nLAB_000407c0:\n        pbVar4 = pbVar7;\n        if ((local_78->by == (bfd *)0x0) ||\n           ((uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 1) == 0 &&\n            (((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0)))))) {\n          for (; pbVar4 != local_78; pbVar4 = pbVar4->next) {\n            if (((pbVar4->by == (bfd *)0x0) ||\n                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)) &&\n               (iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0)) {\n              if (pbVar4 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          global_found = (lang_input_statement_type *)0x0;\n          global_needed = local_78;\n          real_func = gldaarch64elf_check_needed;\n          lang_for_each_input_file(aarch64_for_each_input_file_wrapper);\n          if ((global_found == (lang_input_statement_type *)0x0) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(global_found->the_bfd), (uVar8 & 1) != 0)) {\n            pbVar13 = local_78->by;\n            pcVar11 = local_78->name;\n            n.by = pbVar13;\n            n.name = pcVar11;\n            nn.by = pbVar13;\n            if (verbose != 0) {\n              pcVar20 = (char *)dcgettext(0,"%s needed by %pB\n",5);\n              info_msg(pcVar20,pcVar11,pbVar13);\n            }\n            if (global_found == (lang_input_statement_type *)0x0) {\nLAB_00040998:\n              local_64 = (dt_needed *)0x0;\n              do {\n                pcVar20 = n.name;\n                pcVar11 = command_line.rpath_link;\n                if (*n.name == '/') {\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }\n                else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }\n                sVar12 = strlen(local_78->name);\n                if (search_head != (search_dirs_type *)0x0) {\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }\n                if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;\n                local_64 = (dt_needed *)0x1;\n              } while( true );\n            }\n            nn.name = global_found->filename;\n            bVar10 = gldaarch64elf_try_needed(&nn,(int)nn.name,(dt_needed *)0x1);\n            if (bVar10 == 0) goto LAB_00040998;\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((link_info._3_1_ & 0xc0) == 0x80) &&\n         (iVar9 = bfd_elf_parse_eh_frame_entries(0,&link_info), iVar9 == 0)) {\n        pcVar11 = (char *)dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        einfo(pcVar11);\n      }\n    }\n  }\n  return;\ncode_r0x00040e73:\n  pbVar13 = local_78->by;\n  pcVar11 = local_78->name;\n  pcVar20 = (char *)dcgettext(0,\n                              "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                              ,5);\n  einfo(pcVar20,pcVar11,pbVar13);\nLAB_00040900:\n  ppbVar3 = &local_78->next;\n  local_78 = *ppbVar3;\n  if (*ppbVar3 == (bfd_link_needed_list *)0x0) goto LAB_00040912;\n  goto LAB_000407c0;\n}" primitive_type (function_declarator "gldaarch64elf_after_open(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  output_elf_obj_tdata *poVar2;\n  bfd_link_needed_list **ppbVar3;\n  bfd_link_needed_list *pbVar4;\n  bfd_link_hash_table *pbVar5;\n  asection *paVar6;\n  bfd_link_needed_list *pbVar7;\n  uint uVar8;\n  int iVar9;\n  bfd_boolean bVar10;\n  char *pcVar11;\n  size_t sVar12;\n  bfd *pbVar13;\n  char *pcVar14;\n  size_t sVar15;\n  size_t sVar16;\n  char *pcVar17;\n  byte *pbVar18;\n  char *pcVar19;\n  char *pcVar20;\n  bfd_link_hash_entry *pbVar21;\n  byte bVar22;\n  bfd *pbVar23;\n  bfd_section *pbVar24;\n  byte *pbVar25;\n  search_dirs *psVar26;\n  size_t sVar27;\n  byte *pbVar28;\n  char *pcVar29;\n  bool bVar30;\n  bool bVar31;\n  bool bVar32;\n  bool bVar33;\n  byte bVar34;\n  bfd_size_type bVar35;\n  char *local_84;\n  bfd_link_needed_list *local_78;\n  bfd *local_74;\n  char *local_68;\n  dt_needed *local_64;\n  dt_needed n;\n  dt_needed nn;\n  dt_needed needed;\n  \n  bVar34 = 0;\n  after_open_default();\n  pbVar5 = link_info.hash;\n  if ((link_info.hash)->type == bfd_link_elf_hash_table) {\n    if (command_line.out_implib_filename != (char *)0x0) {\n      unlink_if_ordinary(command_line.out_implib_filename);\n      link_info.out_implib_bfd =\n           (bfd *)bfd_openw(command_line.out_implib_filename,(link_info.output_bfd)->xvec->name);\n      pcVar11 = command_line.out_implib_filename;\n      if (link_info.out_implib_bfd == (bfd *)0x0) {\n        pcVar20 = (char *)dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        einfo(pcVar20,pcVar11);\n      }\n    }\n    pbVar23 = link_info.output_bfd;\n    pbVar13 = link_info.input_bfds;\n    if (emit_note_gnu_build_id != (char *)0x0) {\n      for (; pbVar13 != (bfd *)0x0; pbVar13 = (pbVar13->link).next) {\n        if (((pbVar13->xvec->flavour == bfd_target_elf_flavour) && (pbVar13->section_count != 0)) &&\n           ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) == 0)) {\n          bVar35 = compute_build_id_size(emit_note_gnu_build_id);\n          if ((bVar35 == 0) || (bVar35 + 0x10 == 0)) {\n            pcVar11 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar6 = (asection *)\n                     bfd_make_section_with_flags\n                               (pbVar13,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (paVar6 != (asection *)0x0) {\n              paVar6->alignment_power = 2;\n              pbVar23 = link_info.output_bfd;\n              poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o;\n              (poVar2->build_id).after_write_object_contents = write_build_id;\n              pcVar11 = emit_note_gnu_build_id;\n              (poVar2->build_id).sec = paVar6;\n              (poVar2->build_id).style = pcVar11;\n              *(undefined4 *)((int)paVar6->used_by_bfd + 4) = 7;\n              paVar6->size = bVar35 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar11 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          pcVar11 = (char *)dcgettext(0,pcVar11,5);\n          einfo(pcVar11);\n          break;\n        }\n      }\n      free(emit_note_gnu_build_id);\n      emit_note_gnu_build_id = (char *)0x0;\n      pbVar23 = link_info.output_bfd;\n    }\nLAB_00040754:\n    (**(code **)((int)pbVar23->xvec->backend_data + 0x1d0))(&link_info);\n    if ((link_info._0_1_ & 3) == 2) {\n      if ((byte)link_info._5_1_ >> 7 == (~link_info._6_1_ & 1)) {\n        bfd_make_section_with_flags\n                  (link_info.input_bfds,".note.GNU-stack",(byte)link_info._5_1_ >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((link_info._4_1_ & 0x20) == 0) && (link_info.input_bfds != (bfd *)0x0)) {\n        local_78 = (bfd_link_needed_list *)0x0;\n        bVar31 = false;\n        local_74 = (bfd *)0x0;\n        pbVar13 = link_info.input_bfds;\n        do {\n          while ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            pbVar13 = (pbVar13->link).next;\n            if (pbVar13 == (bfd *)0x0) goto LAB_00040fe6;\n          }\n          pbVar24 = pbVar13->sections;\n          if (pbVar24 != (bfd_section *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar33 = pbVar24->output_section <\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              bVar30 = pbVar24->output_section ==\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              pcVar11 = local_84;\n              if (!bVar30) {\n                iVar9 = 0xf;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar30);\n                bVar32 = false;\n                bVar33 = (!bVar33 && !bVar30) == bVar33;\n                if (bVar33) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar9 = 10;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar33);\n                if (((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {\n                  pcVar11 = local_84;\n                }\n              }\n              local_84 = pcVar11;\n              pbVar24 = pbVar24->next;\n            } while (pbVar24 != (bfd_section *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pbVar7 = (bfd_link_needed_list *)local_84;\n              if ((local_78 != (bfd_link_needed_list *)0x0) &&\n                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)) {\n                if (local_84 != (char *)0x1) {\n                  pbVar13 = local_74;\n                }\n                pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5);\n                einfo(pcVar11,pbVar13);\n                break;\n              }\n              local_78 = pbVar7;\n              if ((local_74 == (bfd *)0x0) &&\n                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))) {\n                local_74 = pbVar13;\n              }\n            }\n          }\n          if (local_78 != (bfd_link_needed_list *)0x2) goto LAB_00040ee8;\n          pbVar13 = (pbVar13->link).next;\n          link_info._2_2_ = link_info._2_2_ & 0x3fff | 0x8000;\n        } while (pbVar13 != (bfd *)0x0);\nLAB_00040fe6:\n        if ((local_74 == (bfd *)0x0) ||\n           (pbVar21 = (bfd_link_hash_entry *)\n                      bfd_make_section_with_flags\n                                (local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8),\n           pbVar21 == (bfd_link_hash_entry *)0x0)) {\n          if (bVar31) {\n            pcVar11 = (char *)dcgettext(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5);\n            einfo(pcVar11);\n          }\n        }\n        else {\n          pbVar21[2].u.i.warning = (char *)0x2;\n          pbVar5[4].undefs_tail = pbVar21;\n        }\n      }\n      pbVar7 = (bfd_link_needed_list *)bfd_elf_get_needed_list(link_info.output_bfd,&link_info);\n      local_78 = pbVar7;\n      if (pbVar7 != (bfd_link_needed_list *)0x0) {\nLAB_000407c0:\n        pbVar4 = pbVar7;\n        if ((local_78->by == (bfd *)0x0) ||\n           ((uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 1) == 0 &&\n            (((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0)))))) {\n          for (; pbVar4 != local_78; pbVar4 = pbVar4->next) {\n            if (((pbVar4->by == (bfd *)0x0) ||\n                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)) &&\n               (iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0)) {\n              if (pbVar4 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          global_found = (lang_input_statement_type *)0x0;\n          global_needed = local_78;\n          real_func = gldaarch64elf_check_needed;\n          lang_for_each_input_file(aarch64_for_each_input_file_wrapper);\n          if ((global_found == (lang_input_statement_type *)0x0) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(global_found->the_bfd), (uVar8 & 1) != 0)) {\n            pbVar13 = local_78->by;\n            pcVar11 = local_78->name;\n            n.by = pbVar13;\n            n.name = pcVar11;\n            nn.by = pbVar13;\n            if (verbose != 0) {\n              pcVar20 = (char *)dcgettext(0,"%s needed by %pB\n",5);\n              info_msg(pcVar20,pcVar11,pbVar13);\n            }\n            if (global_found == (lang_input_statement_type *)0x0) {\nLAB_00040998:\n              local_64 = (dt_needed *)0x0;\n              do {\n                pcVar20 = n.name;\n                pcVar11 = command_line.rpath_link;\n                if (*n.name == '/') {\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }\n                else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }\n                sVar12 = strlen(local_78->name);\n                if (search_head != (search_dirs_type *)0x0) {\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }\n                if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;\n                local_64 = (dt_needed *)0x1;\n              } while( true );\n            }\n            nn.name = global_found->filename;\n            bVar10 = gldaarch64elf_try_needed(&nn,(int)nn.name,(dt_needed *)0x1);\n            if (bVar10 == 0) goto LAB_00040998;\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((link_info._3_1_ & 0xc0) == 0x80) &&\n         (iVar9 = bfd_elf_parse_eh_frame_entries(0,&link_info), iVar9 == 0)) {\n        pcVar11 = (char *)dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        einfo(pcVar11);\n      }\n    }\n  }\n  return;\ncode_r0x00040e73:\n  pbVar13 = local_78->by;\n  pcVar11 = local_78->name;\n  pcVar20 = (char *)dcgettext(0,\n                              "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                              ,5);\n  einfo(pcVar20,pcVar11,pbVar13);\nLAB_00040900:\n  ppbVar3 = &local_78->next;\n  local_78 = *ppbVar3;\n  if (*ppbVar3 == (bfd_link_needed_list *)0x0) goto LAB_00040912;\n  goto LAB_000407c0;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "output_elf_obj_tdata *poVar2;" type_identifier (pointer_declarator "*poVar2" * identifier) ;) (declaration "bfd_link_needed_list **ppbVar3;" type_identifier (pointer_declarator "**ppbVar3" * (pointer_declarator "*ppbVar3" * identifier)) ;) (declaration "bfd_link_needed_list *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "bfd_link_hash_table *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "asection *paVar6;" type_identifier (pointer_declarator "*paVar6" * identifier) ;) (declaration "bfd_link_needed_list *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "bfd_boolean bVar10;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "bfd *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "size_t sVar15;" primitive_type identifier ;) (declaration "size_t sVar16;" primitive_type identifier ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "bfd_link_hash_entry *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "byte bVar22;" type_identifier identifier ;) (declaration "bfd *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "bfd_section *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "byte *pbVar25;" type_identifier (pointer_declarator "*pbVar25" * identifier) ;) (declaration "search_dirs *psVar26;" type_identifier (pointer_declarator "*psVar26" * identifier) ;) (declaration "size_t sVar27;" primitive_type identifier ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "char *pcVar29;" primitive_type (pointer_declarator "*pcVar29" * identifier) ;) (declaration "bool bVar30;" primitive_type identifier ;) (declaration "bool bVar31;" primitive_type identifier ;) (declaration "bool bVar32;" primitive_type identifier ;) (declaration "bool bVar33;" primitive_type identifier ;) (declaration "byte bVar34;" type_identifier identifier ;) (declaration "bfd_size_type bVar35;" type_identifier identifier ;) (declaration "char *local_84;" primitive_type (pointer_declarator "*local_84" * identifier) ;) (declaration "bfd_link_needed_list *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "bfd *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "char *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "dt_needed *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "dt_needed n;" type_identifier identifier ;) (declaration "dt_needed nn;" type_identifier identifier ;) (declaration "dt_needed needed;" type_identifier identifier ;) (expression_statement "bVar34 = 0;" (assignment_expression "bVar34 = 0" identifier = number_literal) ;) (expression_statement "after_open_default();" (call_expression "after_open_default()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar5 = link_info.hash;" (assignment_expression "pbVar5 = link_info.hash" identifier = (field_expression "link_info.hash" identifier . field_identifier)) ;) (if_statement "if ((link_info.hash)->type == bfd_link_elf_hash_table) {\n    if (command_line.out_implib_filename != (char *)0x0) {\n      unlink_if_ordinary(command_line.out_implib_filename);\n      link_info.out_implib_bfd =\n           (bfd *)bfd_openw(command_line.out_implib_filename,(link_info.output_bfd)->xvec->name);\n      pcVar11 = command_line.out_implib_filename;\n      if (link_info.out_implib_bfd == (bfd *)0x0) {\n        pcVar20 = (char *)dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        einfo(pcVar20,pcVar11);\n      }\n    }\n    pbVar23 = link_info.output_bfd;\n    pbVar13 = link_info.input_bfds;\n    if (emit_note_gnu_build_id != (char *)0x0) {\n      for (; pbVar13 != (bfd *)0x0; pbVar13 = (pbVar13->link).next) {\n        if (((pbVar13->xvec->flavour == bfd_target_elf_flavour) && (pbVar13->section_count != 0)) &&\n           ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) == 0)) {\n          bVar35 = compute_build_id_size(emit_note_gnu_build_id);\n          if ((bVar35 == 0) || (bVar35 + 0x10 == 0)) {\n            pcVar11 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar6 = (asection *)\n                     bfd_make_section_with_flags\n                               (pbVar13,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (paVar6 != (asection *)0x0) {\n              paVar6->alignment_power = 2;\n              pbVar23 = link_info.output_bfd;\n              poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o;\n              (poVar2->build_id).after_write_object_contents = write_build_id;\n              pcVar11 = emit_note_gnu_build_id;\n              (poVar2->build_id).sec = paVar6;\n              (poVar2->build_id).style = pcVar11;\n              *(undefined4 *)((int)paVar6->used_by_bfd + 4) = 7;\n              paVar6->size = bVar35 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar11 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          pcVar11 = (char *)dcgettext(0,pcVar11,5);\n          einfo(pcVar11);\n          break;\n        }\n      }\n      free(emit_note_gnu_build_id);\n      emit_note_gnu_build_id = (char *)0x0;\n      pbVar23 = link_info.output_bfd;\n    }\nLAB_00040754:\n    (**(code **)((int)pbVar23->xvec->backend_data + 0x1d0))(&link_info);\n    if ((link_info._0_1_ & 3) == 2) {\n      if ((byte)link_info._5_1_ >> 7 == (~link_info._6_1_ & 1)) {\n        bfd_make_section_with_flags\n                  (link_info.input_bfds,".note.GNU-stack",(byte)link_info._5_1_ >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((link_info._4_1_ & 0x20) == 0) && (link_info.input_bfds != (bfd *)0x0)) {\n        local_78 = (bfd_link_needed_list *)0x0;\n        bVar31 = false;\n        local_74 = (bfd *)0x0;\n        pbVar13 = link_info.input_bfds;\n        do {\n          while ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            pbVar13 = (pbVar13->link).next;\n            if (pbVar13 == (bfd *)0x0) goto LAB_00040fe6;\n          }\n          pbVar24 = pbVar13->sections;\n          if (pbVar24 != (bfd_section *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar33 = pbVar24->output_section <\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              bVar30 = pbVar24->output_section ==\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              pcVar11 = local_84;\n              if (!bVar30) {\n                iVar9 = 0xf;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar30);\n                bVar32 = false;\n                bVar33 = (!bVar33 && !bVar30) == bVar33;\n                if (bVar33) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar9 = 10;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar33);\n                if (((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {\n                  pcVar11 = local_84;\n                }\n              }\n              local_84 = pcVar11;\n              pbVar24 = pbVar24->next;\n            } while (pbVar24 != (bfd_section *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pbVar7 = (bfd_link_needed_list *)local_84;\n              if ((local_78 != (bfd_link_needed_list *)0x0) &&\n                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)) {\n                if (local_84 != (char *)0x1) {\n                  pbVar13 = local_74;\n                }\n                pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5);\n                einfo(pcVar11,pbVar13);\n                break;\n              }\n              local_78 = pbVar7;\n              if ((local_74 == (bfd *)0x0) &&\n                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))) {\n                local_74 = pbVar13;\n              }\n            }\n          }\n          if (local_78 != (bfd_link_needed_list *)0x2) goto LAB_00040ee8;\n          pbVar13 = (pbVar13->link).next;\n          link_info._2_2_ = link_info._2_2_ & 0x3fff | 0x8000;\n        } while (pbVar13 != (bfd *)0x0);\nLAB_00040fe6:\n        if ((local_74 == (bfd *)0x0) ||\n           (pbVar21 = (bfd_link_hash_entry *)\n                      bfd_make_section_with_flags\n                                (local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8),\n           pbVar21 == (bfd_link_hash_entry *)0x0)) {\n          if (bVar31) {\n            pcVar11 = (char *)dcgettext(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5);\n            einfo(pcVar11);\n          }\n        }\n        else {\n          pbVar21[2].u.i.warning = (char *)0x2;\n          pbVar5[4].undefs_tail = pbVar21;\n        }\n      }\n      pbVar7 = (bfd_link_needed_list *)bfd_elf_get_needed_list(link_info.output_bfd,&link_info);\n      local_78 = pbVar7;\n      if (pbVar7 != (bfd_link_needed_list *)0x0) {\nLAB_000407c0:\n        pbVar4 = pbVar7;\n        if ((local_78->by == (bfd *)0x0) ||\n           ((uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 1) == 0 &&\n            (((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0)))))) {\n          for (; pbVar4 != local_78; pbVar4 = pbVar4->next) {\n            if (((pbVar4->by == (bfd *)0x0) ||\n                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)) &&\n               (iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0)) {\n              if (pbVar4 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          global_found = (lang_input_statement_type *)0x0;\n          global_needed = local_78;\n          real_func = gldaarch64elf_check_needed;\n          lang_for_each_input_file(aarch64_for_each_input_file_wrapper);\n          if ((global_found == (lang_input_statement_type *)0x0) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(global_found->the_bfd), (uVar8 & 1) != 0)) {\n            pbVar13 = local_78->by;\n            pcVar11 = local_78->name;\n            n.by = pbVar13;\n            n.name = pcVar11;\n            nn.by = pbVar13;\n            if (verbose != 0) {\n              pcVar20 = (char *)dcgettext(0,"%s needed by %pB\n",5);\n              info_msg(pcVar20,pcVar11,pbVar13);\n            }\n            if (global_found == (lang_input_statement_type *)0x0) {\nLAB_00040998:\n              local_64 = (dt_needed *)0x0;\n              do {\n                pcVar20 = n.name;\n                pcVar11 = command_line.rpath_link;\n                if (*n.name == '/') {\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }\n                else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }\n                sVar12 = strlen(local_78->name);\n                if (search_head != (search_dirs_type *)0x0) {\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }\n                if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;\n                local_64 = (dt_needed *)0x1;\n              } while( true );\n            }\n            nn.name = global_found->filename;\n            bVar10 = gldaarch64elf_try_needed(&nn,(int)nn.name,(dt_needed *)0x1);\n            if (bVar10 == 0) goto LAB_00040998;\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((link_info._3_1_ & 0xc0) == 0x80) &&\n         (iVar9 = bfd_elf_parse_eh_frame_entries(0,&link_info), iVar9 == 0)) {\n        pcVar11 = (char *)dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        einfo(pcVar11);\n      }\n    }\n  }" if (parenthesized_expression "((link_info.hash)->type == bfd_link_elf_hash_table)" ( (binary_expression "(link_info.hash)->type == bfd_link_elf_hash_table" (field_expression "(link_info.hash)->type" (parenthesized_expression "(link_info.hash)" ( (field_expression "link_info.hash" identifier . field_identifier) )) -> field_identifier) == identifier) )) (compound_statement "{\n    if (command_line.out_implib_filename != (char *)0x0) {\n      unlink_if_ordinary(command_line.out_implib_filename);\n      link_info.out_implib_bfd =\n           (bfd *)bfd_openw(command_line.out_implib_filename,(link_info.output_bfd)->xvec->name);\n      pcVar11 = command_line.out_implib_filename;\n      if (link_info.out_implib_bfd == (bfd *)0x0) {\n        pcVar20 = (char *)dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        einfo(pcVar20,pcVar11);\n      }\n    }\n    pbVar23 = link_info.output_bfd;\n    pbVar13 = link_info.input_bfds;\n    if (emit_note_gnu_build_id != (char *)0x0) {\n      for (; pbVar13 != (bfd *)0x0; pbVar13 = (pbVar13->link).next) {\n        if (((pbVar13->xvec->flavour == bfd_target_elf_flavour) && (pbVar13->section_count != 0)) &&\n           ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) == 0)) {\n          bVar35 = compute_build_id_size(emit_note_gnu_build_id);\n          if ((bVar35 == 0) || (bVar35 + 0x10 == 0)) {\n            pcVar11 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar6 = (asection *)\n                     bfd_make_section_with_flags\n                               (pbVar13,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (paVar6 != (asection *)0x0) {\n              paVar6->alignment_power = 2;\n              pbVar23 = link_info.output_bfd;\n              poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o;\n              (poVar2->build_id).after_write_object_contents = write_build_id;\n              pcVar11 = emit_note_gnu_build_id;\n              (poVar2->build_id).sec = paVar6;\n              (poVar2->build_id).style = pcVar11;\n              *(undefined4 *)((int)paVar6->used_by_bfd + 4) = 7;\n              paVar6->size = bVar35 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar11 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          pcVar11 = (char *)dcgettext(0,pcVar11,5);\n          einfo(pcVar11);\n          break;\n        }\n      }\n      free(emit_note_gnu_build_id);\n      emit_note_gnu_build_id = (char *)0x0;\n      pbVar23 = link_info.output_bfd;\n    }\nLAB_00040754:\n    (**(code **)((int)pbVar23->xvec->backend_data + 0x1d0))(&link_info);\n    if ((link_info._0_1_ & 3) == 2) {\n      if ((byte)link_info._5_1_ >> 7 == (~link_info._6_1_ & 1)) {\n        bfd_make_section_with_flags\n                  (link_info.input_bfds,".note.GNU-stack",(byte)link_info._5_1_ >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((link_info._4_1_ & 0x20) == 0) && (link_info.input_bfds != (bfd *)0x0)) {\n        local_78 = (bfd_link_needed_list *)0x0;\n        bVar31 = false;\n        local_74 = (bfd *)0x0;\n        pbVar13 = link_info.input_bfds;\n        do {\n          while ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            pbVar13 = (pbVar13->link).next;\n            if (pbVar13 == (bfd *)0x0) goto LAB_00040fe6;\n          }\n          pbVar24 = pbVar13->sections;\n          if (pbVar24 != (bfd_section *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar33 = pbVar24->output_section <\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              bVar30 = pbVar24->output_section ==\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              pcVar11 = local_84;\n              if (!bVar30) {\n                iVar9 = 0xf;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar30);\n                bVar32 = false;\n                bVar33 = (!bVar33 && !bVar30) == bVar33;\n                if (bVar33) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar9 = 10;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar33);\n                if (((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {\n                  pcVar11 = local_84;\n                }\n              }\n              local_84 = pcVar11;\n              pbVar24 = pbVar24->next;\n            } while (pbVar24 != (bfd_section *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pbVar7 = (bfd_link_needed_list *)local_84;\n              if ((local_78 != (bfd_link_needed_list *)0x0) &&\n                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)) {\n                if (local_84 != (char *)0x1) {\n                  pbVar13 = local_74;\n                }\n                pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5);\n                einfo(pcVar11,pbVar13);\n                break;\n              }\n              local_78 = pbVar7;\n              if ((local_74 == (bfd *)0x0) &&\n                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))) {\n                local_74 = pbVar13;\n              }\n            }\n          }\n          if (local_78 != (bfd_link_needed_list *)0x2) goto LAB_00040ee8;\n          pbVar13 = (pbVar13->link).next;\n          link_info._2_2_ = link_info._2_2_ & 0x3fff | 0x8000;\n        } while (pbVar13 != (bfd *)0x0);\nLAB_00040fe6:\n        if ((local_74 == (bfd *)0x0) ||\n           (pbVar21 = (bfd_link_hash_entry *)\n                      bfd_make_section_with_flags\n                                (local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8),\n           pbVar21 == (bfd_link_hash_entry *)0x0)) {\n          if (bVar31) {\n            pcVar11 = (char *)dcgettext(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5);\n            einfo(pcVar11);\n          }\n        }\n        else {\n          pbVar21[2].u.i.warning = (char *)0x2;\n          pbVar5[4].undefs_tail = pbVar21;\n        }\n      }\n      pbVar7 = (bfd_link_needed_list *)bfd_elf_get_needed_list(link_info.output_bfd,&link_info);\n      local_78 = pbVar7;\n      if (pbVar7 != (bfd_link_needed_list *)0x0) {\nLAB_000407c0:\n        pbVar4 = pbVar7;\n        if ((local_78->by == (bfd *)0x0) ||\n           ((uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 1) == 0 &&\n            (((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0)))))) {\n          for (; pbVar4 != local_78; pbVar4 = pbVar4->next) {\n            if (((pbVar4->by == (bfd *)0x0) ||\n                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)) &&\n               (iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0)) {\n              if (pbVar4 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          global_found = (lang_input_statement_type *)0x0;\n          global_needed = local_78;\n          real_func = gldaarch64elf_check_needed;\n          lang_for_each_input_file(aarch64_for_each_input_file_wrapper);\n          if ((global_found == (lang_input_statement_type *)0x0) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(global_found->the_bfd), (uVar8 & 1) != 0)) {\n            pbVar13 = local_78->by;\n            pcVar11 = local_78->name;\n            n.by = pbVar13;\n            n.name = pcVar11;\n            nn.by = pbVar13;\n            if (verbose != 0) {\n              pcVar20 = (char *)dcgettext(0,"%s needed by %pB\n",5);\n              info_msg(pcVar20,pcVar11,pbVar13);\n            }\n            if (global_found == (lang_input_statement_type *)0x0) {\nLAB_00040998:\n              local_64 = (dt_needed *)0x0;\n              do {\n                pcVar20 = n.name;\n                pcVar11 = command_line.rpath_link;\n                if (*n.name == '/') {\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }\n                else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }\n                sVar12 = strlen(local_78->name);\n                if (search_head != (search_dirs_type *)0x0) {\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }\n                if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;\n                local_64 = (dt_needed *)0x1;\n              } while( true );\n            }\n            nn.name = global_found->filename;\n            bVar10 = gldaarch64elf_try_needed(&nn,(int)nn.name,(dt_needed *)0x1);\n            if (bVar10 == 0) goto LAB_00040998;\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((link_info._3_1_ & 0xc0) == 0x80) &&\n         (iVar9 = bfd_elf_parse_eh_frame_entries(0,&link_info), iVar9 == 0)) {\n        pcVar11 = (char *)dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        einfo(pcVar11);\n      }\n    }\n  }" { (if_statement "if (command_line.out_implib_filename != (char *)0x0) {\n      unlink_if_ordinary(command_line.out_implib_filename);\n      link_info.out_implib_bfd =\n           (bfd *)bfd_openw(command_line.out_implib_filename,(link_info.output_bfd)->xvec->name);\n      pcVar11 = command_line.out_implib_filename;\n      if (link_info.out_implib_bfd == (bfd *)0x0) {\n        pcVar20 = (char *)dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        einfo(pcVar20,pcVar11);\n      }\n    }" if (parenthesized_expression "(command_line.out_implib_filename != (char *)0x0)" ( (binary_expression "command_line.out_implib_filename != (char *)0x0" (field_expression "command_line.out_implib_filename" identifier . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      unlink_if_ordinary(command_line.out_implib_filename);\n      link_info.out_implib_bfd =\n           (bfd *)bfd_openw(command_line.out_implib_filename,(link_info.output_bfd)->xvec->name);\n      pcVar11 = command_line.out_implib_filename;\n      if (link_info.out_implib_bfd == (bfd *)0x0) {\n        pcVar20 = (char *)dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        einfo(pcVar20,pcVar11);\n      }\n    }" { (expression_statement "unlink_if_ordinary(command_line.out_implib_filename);" (call_expression "unlink_if_ordinary(command_line.out_implib_filename)" identifier (argument_list "(command_line.out_implib_filename)" ( (field_expression "command_line.out_implib_filename" identifier . field_identifier) ))) ;) (expression_statement "link_info.out_implib_bfd =\n           (bfd *)bfd_openw(command_line.out_implib_filename,(link_info.output_bfd)->xvec->name);" (assignment_expression "link_info.out_implib_bfd =\n           (bfd *)bfd_openw(command_line.out_implib_filename,(link_info.output_bfd)->xvec->name)" (field_expression "link_info.out_implib_bfd" identifier . field_identifier) = (cast_expression "(bfd *)bfd_openw(command_line.out_implib_filename,(link_info.output_bfd)->xvec->name)" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_openw(command_line.out_implib_filename,(link_info.output_bfd)->xvec->name)" identifier (argument_list "(command_line.out_implib_filename,(link_info.output_bfd)->xvec->name)" ( (field_expression "command_line.out_implib_filename" identifier . field_identifier) , (field_expression "(link_info.output_bfd)->xvec->name" (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) -> field_identifier) ))))) ;) (expression_statement "pcVar11 = command_line.out_implib_filename;" (assignment_expression "pcVar11 = command_line.out_implib_filename" identifier = (field_expression "command_line.out_implib_filename" identifier . field_identifier)) ;) (if_statement "if (link_info.out_implib_bfd == (bfd *)0x0) {\n        pcVar20 = (char *)dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        einfo(pcVar20,pcVar11);\n      }" if (parenthesized_expression "(link_info.out_implib_bfd == (bfd *)0x0)" ( (binary_expression "link_info.out_implib_bfd == (bfd *)0x0" (field_expression "link_info.out_implib_bfd" identifier . field_identifier) == (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar20 = (char *)dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        einfo(pcVar20,pcVar11);\n      }" { (expression_statement "pcVar20 = (char *)dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);" (assignment_expression "pcVar20 = (char *)dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5)" identifier (argument_list "(0,"%F%P: %s: can\'t open for writing: %E\n",5)" ( number_literal , (string_literal ""%F%P: %s: can\'t open for writing: %E\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar20,pcVar11);" (call_expression "einfo(pcVar20,pcVar11)" identifier (argument_list "(pcVar20,pcVar11)" ( identifier , identifier ))) ;) })) })) (expression_statement "pbVar23 = link_info.output_bfd;" (assignment_expression "pbVar23 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) (expression_statement "pbVar13 = link_info.input_bfds;" (assignment_expression "pbVar13 = link_info.input_bfds" identifier = (field_expression "link_info.input_bfds" identifier . field_identifier)) ;) (if_statement "if (emit_note_gnu_build_id != (char *)0x0) {\n      for (; pbVar13 != (bfd *)0x0; pbVar13 = (pbVar13->link).next) {\n        if (((pbVar13->xvec->flavour == bfd_target_elf_flavour) && (pbVar13->section_count != 0)) &&\n           ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) == 0)) {\n          bVar35 = compute_build_id_size(emit_note_gnu_build_id);\n          if ((bVar35 == 0) || (bVar35 + 0x10 == 0)) {\n            pcVar11 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar6 = (asection *)\n                     bfd_make_section_with_flags\n                               (pbVar13,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (paVar6 != (asection *)0x0) {\n              paVar6->alignment_power = 2;\n              pbVar23 = link_info.output_bfd;\n              poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o;\n              (poVar2->build_id).after_write_object_contents = write_build_id;\n              pcVar11 = emit_note_gnu_build_id;\n              (poVar2->build_id).sec = paVar6;\n              (poVar2->build_id).style = pcVar11;\n              *(undefined4 *)((int)paVar6->used_by_bfd + 4) = 7;\n              paVar6->size = bVar35 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar11 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          pcVar11 = (char *)dcgettext(0,pcVar11,5);\n          einfo(pcVar11);\n          break;\n        }\n      }\n      free(emit_note_gnu_build_id);\n      emit_note_gnu_build_id = (char *)0x0;\n      pbVar23 = link_info.output_bfd;\n    }" if (parenthesized_expression "(emit_note_gnu_build_id != (char *)0x0)" ( (binary_expression "emit_note_gnu_build_id != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      for (; pbVar13 != (bfd *)0x0; pbVar13 = (pbVar13->link).next) {\n        if (((pbVar13->xvec->flavour == bfd_target_elf_flavour) && (pbVar13->section_count != 0)) &&\n           ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) == 0)) {\n          bVar35 = compute_build_id_size(emit_note_gnu_build_id);\n          if ((bVar35 == 0) || (bVar35 + 0x10 == 0)) {\n            pcVar11 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar6 = (asection *)\n                     bfd_make_section_with_flags\n                               (pbVar13,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (paVar6 != (asection *)0x0) {\n              paVar6->alignment_power = 2;\n              pbVar23 = link_info.output_bfd;\n              poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o;\n              (poVar2->build_id).after_write_object_contents = write_build_id;\n              pcVar11 = emit_note_gnu_build_id;\n              (poVar2->build_id).sec = paVar6;\n              (poVar2->build_id).style = pcVar11;\n              *(undefined4 *)((int)paVar6->used_by_bfd + 4) = 7;\n              paVar6->size = bVar35 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar11 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          pcVar11 = (char *)dcgettext(0,pcVar11,5);\n          einfo(pcVar11);\n          break;\n        }\n      }\n      free(emit_note_gnu_build_id);\n      emit_note_gnu_build_id = (char *)0x0;\n      pbVar23 = link_info.output_bfd;\n    }" { (for_statement "for (; pbVar13 != (bfd *)0x0; pbVar13 = (pbVar13->link).next) {\n        if (((pbVar13->xvec->flavour == bfd_target_elf_flavour) && (pbVar13->section_count != 0)) &&\n           ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) == 0)) {\n          bVar35 = compute_build_id_size(emit_note_gnu_build_id);\n          if ((bVar35 == 0) || (bVar35 + 0x10 == 0)) {\n            pcVar11 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar6 = (asection *)\n                     bfd_make_section_with_flags\n                               (pbVar13,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (paVar6 != (asection *)0x0) {\n              paVar6->alignment_power = 2;\n              pbVar23 = link_info.output_bfd;\n              poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o;\n              (poVar2->build_id).after_write_object_contents = write_build_id;\n              pcVar11 = emit_note_gnu_build_id;\n              (poVar2->build_id).sec = paVar6;\n              (poVar2->build_id).style = pcVar11;\n              *(undefined4 *)((int)paVar6->used_by_bfd + 4) = 7;\n              paVar6->size = bVar35 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar11 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          pcVar11 = (char *)dcgettext(0,pcVar11,5);\n          einfo(pcVar11);\n          break;\n        }\n      }" for ( ; (binary_expression "pbVar13 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pbVar13 = (pbVar13->link).next" identifier = (field_expression "(pbVar13->link).next" (parenthesized_expression "(pbVar13->link)" ( (field_expression "pbVar13->link" identifier -> field_identifier) )) . field_identifier)) ) (compound_statement "{\n        if (((pbVar13->xvec->flavour == bfd_target_elf_flavour) && (pbVar13->section_count != 0)) &&\n           ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) == 0)) {\n          bVar35 = compute_build_id_size(emit_note_gnu_build_id);\n          if ((bVar35 == 0) || (bVar35 + 0x10 == 0)) {\n            pcVar11 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar6 = (asection *)\n                     bfd_make_section_with_flags\n                               (pbVar13,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (paVar6 != (asection *)0x0) {\n              paVar6->alignment_power = 2;\n              pbVar23 = link_info.output_bfd;\n              poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o;\n              (poVar2->build_id).after_write_object_contents = write_build_id;\n              pcVar11 = emit_note_gnu_build_id;\n              (poVar2->build_id).sec = paVar6;\n              (poVar2->build_id).style = pcVar11;\n              *(undefined4 *)((int)paVar6->used_by_bfd + 4) = 7;\n              paVar6->size = bVar35 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar11 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          pcVar11 = (char *)dcgettext(0,pcVar11,5);\n          einfo(pcVar11);\n          break;\n        }\n      }" { (if_statement "if (((pbVar13->xvec->flavour == bfd_target_elf_flavour) && (pbVar13->section_count != 0)) &&\n           ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) == 0)) {\n          bVar35 = compute_build_id_size(emit_note_gnu_build_id);\n          if ((bVar35 == 0) || (bVar35 + 0x10 == 0)) {\n            pcVar11 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar6 = (asection *)\n                     bfd_make_section_with_flags\n                               (pbVar13,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (paVar6 != (asection *)0x0) {\n              paVar6->alignment_power = 2;\n              pbVar23 = link_info.output_bfd;\n              poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o;\n              (poVar2->build_id).after_write_object_contents = write_build_id;\n              pcVar11 = emit_note_gnu_build_id;\n              (poVar2->build_id).sec = paVar6;\n              (poVar2->build_id).style = pcVar11;\n              *(undefined4 *)((int)paVar6->used_by_bfd + 4) = 7;\n              paVar6->size = bVar35 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar11 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          pcVar11 = (char *)dcgettext(0,pcVar11,5);\n          einfo(pcVar11);\n          break;\n        }" if (parenthesized_expression "(((pbVar13->xvec->flavour == bfd_target_elf_flavour) && (pbVar13->section_count != 0)) &&\n           ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) == 0))" ( (binary_expression "((pbVar13->xvec->flavour == bfd_target_elf_flavour) && (pbVar13->section_count != 0)) &&\n           ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) == 0)" (parenthesized_expression "((pbVar13->xvec->flavour == bfd_target_elf_flavour) && (pbVar13->section_count != 0))" ( (binary_expression "(pbVar13->xvec->flavour == bfd_target_elf_flavour) && (pbVar13->section_count != 0)" (parenthesized_expression "(pbVar13->xvec->flavour == bfd_target_elf_flavour)" ( (binary_expression "pbVar13->xvec->flavour == bfd_target_elf_flavour" (field_expression "pbVar13->xvec->flavour" (field_expression "pbVar13->xvec" identifier -> field_identifier) -> field_identifier) == identifier) )) && (parenthesized_expression "(pbVar13->section_count != 0)" ( (binary_expression "pbVar13->section_count != 0" (field_expression "pbVar13->section_count" identifier -> field_identifier) != number_literal) ))) )) && (parenthesized_expression "((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) == 0)" ( (binary_expression "(*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) == 0" (parenthesized_expression "(*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10)" ( (binary_expression "*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10" (pointer_expression "*(byte *)((int)pbVar13->usrdata + 0x24)" * (cast_expression "(byte *)((int)pbVar13->usrdata + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar13->usrdata + 0x24)" ( (binary_expression "(int)pbVar13->usrdata + 0x24" (cast_expression "(int)pbVar13->usrdata" ( (type_descriptor "int" primitive_type) ) (field_expression "pbVar13->usrdata" identifier -> field_identifier)) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          bVar35 = compute_build_id_size(emit_note_gnu_build_id);\n          if ((bVar35 == 0) || (bVar35 + 0x10 == 0)) {\n            pcVar11 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar6 = (asection *)\n                     bfd_make_section_with_flags\n                               (pbVar13,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (paVar6 != (asection *)0x0) {\n              paVar6->alignment_power = 2;\n              pbVar23 = link_info.output_bfd;\n              poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o;\n              (poVar2->build_id).after_write_object_contents = write_build_id;\n              pcVar11 = emit_note_gnu_build_id;\n              (poVar2->build_id).sec = paVar6;\n              (poVar2->build_id).style = pcVar11;\n              *(undefined4 *)((int)paVar6->used_by_bfd + 4) = 7;\n              paVar6->size = bVar35 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar11 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          pcVar11 = (char *)dcgettext(0,pcVar11,5);\n          einfo(pcVar11);\n          break;\n        }" { (expression_statement "bVar35 = compute_build_id_size(emit_note_gnu_build_id);" (assignment_expression "bVar35 = compute_build_id_size(emit_note_gnu_build_id)" identifier = (call_expression "compute_build_id_size(emit_note_gnu_build_id)" identifier (argument_list "(emit_note_gnu_build_id)" ( identifier )))) ;) (if_statement "if ((bVar35 == 0) || (bVar35 + 0x10 == 0)) {\n            pcVar11 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            paVar6 = (asection *)\n                     bfd_make_section_with_flags\n                               (pbVar13,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (paVar6 != (asection *)0x0) {\n              paVar6->alignment_power = 2;\n              pbVar23 = link_info.output_bfd;\n              poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o;\n              (poVar2->build_id).after_write_object_contents = write_build_id;\n              pcVar11 = emit_note_gnu_build_id;\n              (poVar2->build_id).sec = paVar6;\n              (poVar2->build_id).style = pcVar11;\n              *(undefined4 *)((int)paVar6->used_by_bfd + 4) = 7;\n              paVar6->size = bVar35 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar11 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }" if (parenthesized_expression "((bVar35 == 0) || (bVar35 + 0x10 == 0))" ( (binary_expression "(bVar35 == 0) || (bVar35 + 0x10 == 0)" (parenthesized_expression "(bVar35 == 0)" ( (binary_expression "bVar35 == 0" identifier == number_literal) )) || (parenthesized_expression "(bVar35 + 0x10 == 0)" ( (binary_expression "bVar35 + 0x10 == 0" (binary_expression "bVar35 + 0x10" identifier + number_literal) == number_literal) ))) )) (compound_statement "{\n            pcVar11 = "%P: warning: unrecognized --build-id style ignored\n";\n          }" { (expression_statement "pcVar11 = "%P: warning: unrecognized --build-id style ignored\n";" (assignment_expression "pcVar11 = "%P: warning: unrecognized --build-id style ignored\n"" identifier = (string_literal ""%P: warning: unrecognized --build-id style ignored\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n            paVar6 = (asection *)\n                     bfd_make_section_with_flags\n                               (pbVar13,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (paVar6 != (asection *)0x0) {\n              paVar6->alignment_power = 2;\n              pbVar23 = link_info.output_bfd;\n              poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o;\n              (poVar2->build_id).after_write_object_contents = write_build_id;\n              pcVar11 = emit_note_gnu_build_id;\n              (poVar2->build_id).sec = paVar6;\n              (poVar2->build_id).style = pcVar11;\n              *(undefined4 *)((int)paVar6->used_by_bfd + 4) = 7;\n              paVar6->size = bVar35 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar11 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }" else (compound_statement "{\n            paVar6 = (asection *)\n                     bfd_make_section_with_flags\n                               (pbVar13,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );\n            if (paVar6 != (asection *)0x0) {\n              paVar6->alignment_power = 2;\n              pbVar23 = link_info.output_bfd;\n              poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o;\n              (poVar2->build_id).after_write_object_contents = write_build_id;\n              pcVar11 = emit_note_gnu_build_id;\n              (poVar2->build_id).sec = paVar6;\n              (poVar2->build_id).style = pcVar11;\n              *(undefined4 *)((int)paVar6->used_by_bfd + 4) = 7;\n              paVar6->size = bVar35 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar11 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }" { (expression_statement "paVar6 = (asection *)\n                     bfd_make_section_with_flags\n                               (pbVar13,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               );" (assignment_expression "paVar6 = (asection *)\n                     bfd_make_section_with_flags\n                               (pbVar13,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               )" identifier = (cast_expression "(asection *)\n                     bfd_make_section_with_flags\n                               (pbVar13,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               )" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_make_section_with_flags\n                               (pbVar13,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               )" identifier (argument_list "(pbVar13,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */\n                               )" ( identifier , (string_literal "".note.gnu.build-id"" " string_content ") , (string_literal ""t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..."" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") comment ))))) ;) (if_statement "if (paVar6 != (asection *)0x0) {\n              paVar6->alignment_power = 2;\n              pbVar23 = link_info.output_bfd;\n              poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o;\n              (poVar2->build_id).after_write_object_contents = write_build_id;\n              pcVar11 = emit_note_gnu_build_id;\n              (poVar2->build_id).sec = paVar6;\n              (poVar2->build_id).style = pcVar11;\n              *(undefined4 *)((int)paVar6->used_by_bfd + 4) = 7;\n              paVar6->size = bVar35 + 0x10;\n              goto LAB_00040754;\n            }" if (parenthesized_expression "(paVar6 != (asection *)0x0)" ( (binary_expression "paVar6 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              paVar6->alignment_power = 2;\n              pbVar23 = link_info.output_bfd;\n              poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o;\n              (poVar2->build_id).after_write_object_contents = write_build_id;\n              pcVar11 = emit_note_gnu_build_id;\n              (poVar2->build_id).sec = paVar6;\n              (poVar2->build_id).style = pcVar11;\n              *(undefined4 *)((int)paVar6->used_by_bfd + 4) = 7;\n              paVar6->size = bVar35 + 0x10;\n              goto LAB_00040754;\n            }" { (expression_statement "paVar6->alignment_power = 2;" (assignment_expression "paVar6->alignment_power = 2" (field_expression "paVar6->alignment_power" identifier -> field_identifier) = number_literal) ;) (expression_statement "pbVar23 = link_info.output_bfd;" (assignment_expression "pbVar23 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) (expression_statement "poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o;" (assignment_expression "poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o" identifier = (field_expression "(((link_info.output_bfd)->tdata).elf_obj_data)->o" (parenthesized_expression "(((link_info.output_bfd)->tdata).elf_obj_data)" ( (field_expression "((link_info.output_bfd)->tdata).elf_obj_data" (parenthesized_expression "((link_info.output_bfd)->tdata)" ( (field_expression "(link_info.output_bfd)->tdata" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (expression_statement "(poVar2->build_id).after_write_object_contents = write_build_id;" (assignment_expression "(poVar2->build_id).after_write_object_contents = write_build_id" (field_expression "(poVar2->build_id).after_write_object_contents" (parenthesized_expression "(poVar2->build_id)" ( (field_expression "poVar2->build_id" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "pcVar11 = emit_note_gnu_build_id;" (assignment_expression "pcVar11 = emit_note_gnu_build_id" identifier = identifier) ;) (expression_statement "(poVar2->build_id).sec = paVar6;" (assignment_expression "(poVar2->build_id).sec = paVar6" (field_expression "(poVar2->build_id).sec" (parenthesized_expression "(poVar2->build_id)" ( (field_expression "poVar2->build_id" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(poVar2->build_id).style = pcVar11;" (assignment_expression "(poVar2->build_id).style = pcVar11" (field_expression "(poVar2->build_id).style" (parenthesized_expression "(poVar2->build_id)" ( (field_expression "poVar2->build_id" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)((int)paVar6->used_by_bfd + 4) = 7;" (assignment_expression "*(undefined4 *)((int)paVar6->used_by_bfd + 4) = 7" (pointer_expression "*(undefined4 *)((int)paVar6->used_by_bfd + 4)" * (cast_expression "(undefined4 *)((int)paVar6->used_by_bfd + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar6->used_by_bfd + 4)" ( (binary_expression "(int)paVar6->used_by_bfd + 4" (cast_expression "(int)paVar6->used_by_bfd" ( (type_descriptor "int" primitive_type) ) (field_expression "paVar6->used_by_bfd" identifier -> field_identifier)) + number_literal) )))) = number_literal) ;) (expression_statement "paVar6->size = bVar35 + 0x10;" (assignment_expression "paVar6->size = bVar35 + 0x10" (field_expression "paVar6->size" identifier -> field_identifier) = (binary_expression "bVar35 + 0x10" identifier + number_literal)) ;) (goto_statement "goto LAB_00040754;" goto statement_identifier ;) })) (expression_statement "pcVar11 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";" (assignment_expression "pcVar11 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n"" identifier = (string_literal ""%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n"" " string_content escape_sequence ")) ;) }))) (expression_statement "pcVar11 = (char *)dcgettext(0,pcVar11,5);" (assignment_expression "pcVar11 = (char *)dcgettext(0,pcVar11,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar11,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar11,5)" identifier (argument_list "(0,pcVar11,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "einfo(pcVar11);" (call_expression "einfo(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;) (break_statement "break;" break ;) })) })) (expression_statement "free(emit_note_gnu_build_id);" (call_expression "free(emit_note_gnu_build_id)" identifier (argument_list "(emit_note_gnu_build_id)" ( identifier ))) ;) (expression_statement "emit_note_gnu_build_id = (char *)0x0;" (assignment_expression "emit_note_gnu_build_id = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar23 = link_info.output_bfd;" (assignment_expression "pbVar23 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) })) (labeled_statement "LAB_00040754:\n    (**(code **)((int)pbVar23->xvec->backend_data + 0x1d0))(&link_info);" statement_identifier : (expression_statement "(**(code **)((int)pbVar23->xvec->backend_data + 0x1d0))(&link_info);" (call_expression "(**(code **)((int)pbVar23->xvec->backend_data + 0x1d0))(&link_info)" (parenthesized_expression "(**(code **)((int)pbVar23->xvec->backend_data + 0x1d0))" ( (pointer_expression "**(code **)((int)pbVar23->xvec->backend_data + 0x1d0)" * (pointer_expression "*(code **)((int)pbVar23->xvec->backend_data + 0x1d0)" * (cast_expression "(code **)((int)pbVar23->xvec->backend_data + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pbVar23->xvec->backend_data + 0x1d0)" ( (binary_expression "(int)pbVar23->xvec->backend_data + 0x1d0" (cast_expression "(int)pbVar23->xvec->backend_data" ( (type_descriptor "int" primitive_type) ) (field_expression "pbVar23->xvec->backend_data" (field_expression "pbVar23->xvec" identifier -> field_identifier) -> field_identifier)) + number_literal) ))))) )) (argument_list "(&link_info)" ( (pointer_expression "&link_info" & identifier) ))) ;)) (if_statement "if ((link_info._0_1_ & 3) == 2) {\n      if ((byte)link_info._5_1_ >> 7 == (~link_info._6_1_ & 1)) {\n        bfd_make_section_with_flags\n                  (link_info.input_bfds,".note.GNU-stack",(byte)link_info._5_1_ >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((link_info._4_1_ & 0x20) == 0) && (link_info.input_bfds != (bfd *)0x0)) {\n        local_78 = (bfd_link_needed_list *)0x0;\n        bVar31 = false;\n        local_74 = (bfd *)0x0;\n        pbVar13 = link_info.input_bfds;\n        do {\n          while ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            pbVar13 = (pbVar13->link).next;\n            if (pbVar13 == (bfd *)0x0) goto LAB_00040fe6;\n          }\n          pbVar24 = pbVar13->sections;\n          if (pbVar24 != (bfd_section *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar33 = pbVar24->output_section <\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              bVar30 = pbVar24->output_section ==\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              pcVar11 = local_84;\n              if (!bVar30) {\n                iVar9 = 0xf;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar30);\n                bVar32 = false;\n                bVar33 = (!bVar33 && !bVar30) == bVar33;\n                if (bVar33) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar9 = 10;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar33);\n                if (((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {\n                  pcVar11 = local_84;\n                }\n              }\n              local_84 = pcVar11;\n              pbVar24 = pbVar24->next;\n            } while (pbVar24 != (bfd_section *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pbVar7 = (bfd_link_needed_list *)local_84;\n              if ((local_78 != (bfd_link_needed_list *)0x0) &&\n                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)) {\n                if (local_84 != (char *)0x1) {\n                  pbVar13 = local_74;\n                }\n                pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5);\n                einfo(pcVar11,pbVar13);\n                break;\n              }\n              local_78 = pbVar7;\n              if ((local_74 == (bfd *)0x0) &&\n                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))) {\n                local_74 = pbVar13;\n              }\n            }\n          }\n          if (local_78 != (bfd_link_needed_list *)0x2) goto LAB_00040ee8;\n          pbVar13 = (pbVar13->link).next;\n          link_info._2_2_ = link_info._2_2_ & 0x3fff | 0x8000;\n        } while (pbVar13 != (bfd *)0x0);\nLAB_00040fe6:\n        if ((local_74 == (bfd *)0x0) ||\n           (pbVar21 = (bfd_link_hash_entry *)\n                      bfd_make_section_with_flags\n                                (local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8),\n           pbVar21 == (bfd_link_hash_entry *)0x0)) {\n          if (bVar31) {\n            pcVar11 = (char *)dcgettext(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5);\n            einfo(pcVar11);\n          }\n        }\n        else {\n          pbVar21[2].u.i.warning = (char *)0x2;\n          pbVar5[4].undefs_tail = pbVar21;\n        }\n      }\n      pbVar7 = (bfd_link_needed_list *)bfd_elf_get_needed_list(link_info.output_bfd,&link_info);\n      local_78 = pbVar7;\n      if (pbVar7 != (bfd_link_needed_list *)0x0) {\nLAB_000407c0:\n        pbVar4 = pbVar7;\n        if ((local_78->by == (bfd *)0x0) ||\n           ((uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 1) == 0 &&\n            (((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0)))))) {\n          for (; pbVar4 != local_78; pbVar4 = pbVar4->next) {\n            if (((pbVar4->by == (bfd *)0x0) ||\n                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)) &&\n               (iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0)) {\n              if (pbVar4 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          global_found = (lang_input_statement_type *)0x0;\n          global_needed = local_78;\n          real_func = gldaarch64elf_check_needed;\n          lang_for_each_input_file(aarch64_for_each_input_file_wrapper);\n          if ((global_found == (lang_input_statement_type *)0x0) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(global_found->the_bfd), (uVar8 & 1) != 0)) {\n            pbVar13 = local_78->by;\n            pcVar11 = local_78->name;\n            n.by = pbVar13;\n            n.name = pcVar11;\n            nn.by = pbVar13;\n            if (verbose != 0) {\n              pcVar20 = (char *)dcgettext(0,"%s needed by %pB\n",5);\n              info_msg(pcVar20,pcVar11,pbVar13);\n            }\n            if (global_found == (lang_input_statement_type *)0x0) {\nLAB_00040998:\n              local_64 = (dt_needed *)0x0;\n              do {\n                pcVar20 = n.name;\n                pcVar11 = command_line.rpath_link;\n                if (*n.name == '/') {\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }\n                else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }\n                sVar12 = strlen(local_78->name);\n                if (search_head != (search_dirs_type *)0x0) {\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }\n                if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;\n                local_64 = (dt_needed *)0x1;\n              } while( true );\n            }\n            nn.name = global_found->filename;\n            bVar10 = gldaarch64elf_try_needed(&nn,(int)nn.name,(dt_needed *)0x1);\n            if (bVar10 == 0) goto LAB_00040998;\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((link_info._3_1_ & 0xc0) == 0x80) &&\n         (iVar9 = bfd_elf_parse_eh_frame_entries(0,&link_info), iVar9 == 0)) {\n        pcVar11 = (char *)dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        einfo(pcVar11);\n      }\n    }" if (parenthesized_expression "((link_info._0_1_ & 3) == 2)" ( (binary_expression "(link_info._0_1_ & 3) == 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((byte)link_info._5_1_ >> 7 == (~link_info._6_1_ & 1)) {\n        bfd_make_section_with_flags\n                  (link_info.input_bfds,".note.GNU-stack",(byte)link_info._5_1_ >> 3 & 0x10 | 8);\n      }\n    }" { (if_statement "if ((byte)link_info._5_1_ >> 7 == (~link_info._6_1_ & 1)) {\n        bfd_make_section_with_flags\n                  (link_info.input_bfds,".note.GNU-stack",(byte)link_info._5_1_ >> 3 & 0x10 | 8);\n      }" if (parenthesized_expression "((byte)link_info._5_1_ >> 7 == (~link_info._6_1_ & 1))" ( (binary_expression "(byte)link_info._5_1_ >> 7 == (~link_info._6_1_ & 1)" (binary_expression "(byte)link_info._5_1_ >> 7" (cast_expression "(byte)link_info._5_1_" ( (type_descriptor "byte" type_identifier) ) (field_expression "link_info._5_1_" identifier . field_identifier)) >> number_literal) == (parenthesized_expression "(~link_info._6_1_ & 1)" ( (binary_expression "~link_info._6_1_ & 1" (unary_expression "~link_info._6_1_" ~ (field_expression "link_info._6_1_" identifier . field_identifier)) & number_literal) ))) )) (compound_statement "{\n        bfd_make_section_with_flags\n                  (link_info.input_bfds,".note.GNU-stack",(byte)link_info._5_1_ >> 3 & 0x10 | 8);\n      }" { (expression_statement "bfd_make_section_with_flags\n                  (link_info.input_bfds,".note.GNU-stack",(byte)link_info._5_1_ >> 3 & 0x10 | 8);" (call_expression "bfd_make_section_with_flags\n                  (link_info.input_bfds,".note.GNU-stack",(byte)link_info._5_1_ >> 3 & 0x10 | 8)" identifier (argument_list "(link_info.input_bfds,".note.GNU-stack",(byte)link_info._5_1_ >> 3 & 0x10 | 8)" ( (field_expression "link_info.input_bfds" identifier . field_identifier) , (string_literal "".note.GNU-stack"" " string_content ") , (binary_expression "(byte)link_info._5_1_ >> 3 & 0x10 | 8" (binary_expression "(byte)link_info._5_1_ >> 3 & 0x10" (binary_expression "(byte)link_info._5_1_ >> 3" (cast_expression "(byte)link_info._5_1_" ( (type_descriptor "byte" type_identifier) ) (field_expression "link_info._5_1_" identifier . field_identifier)) >> number_literal) & number_literal) | number_literal) ))) ;) })) }) (else_clause "else {\n      if (((link_info._4_1_ & 0x20) == 0) && (link_info.input_bfds != (bfd *)0x0)) {\n        local_78 = (bfd_link_needed_list *)0x0;\n        bVar31 = false;\n        local_74 = (bfd *)0x0;\n        pbVar13 = link_info.input_bfds;\n        do {\n          while ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            pbVar13 = (pbVar13->link).next;\n            if (pbVar13 == (bfd *)0x0) goto LAB_00040fe6;\n          }\n          pbVar24 = pbVar13->sections;\n          if (pbVar24 != (bfd_section *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar33 = pbVar24->output_section <\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              bVar30 = pbVar24->output_section ==\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              pcVar11 = local_84;\n              if (!bVar30) {\n                iVar9 = 0xf;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar30);\n                bVar32 = false;\n                bVar33 = (!bVar33 && !bVar30) == bVar33;\n                if (bVar33) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar9 = 10;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar33);\n                if (((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {\n                  pcVar11 = local_84;\n                }\n              }\n              local_84 = pcVar11;\n              pbVar24 = pbVar24->next;\n            } while (pbVar24 != (bfd_section *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pbVar7 = (bfd_link_needed_list *)local_84;\n              if ((local_78 != (bfd_link_needed_list *)0x0) &&\n                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)) {\n                if (local_84 != (char *)0x1) {\n                  pbVar13 = local_74;\n                }\n                pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5);\n                einfo(pcVar11,pbVar13);\n                break;\n              }\n              local_78 = pbVar7;\n              if ((local_74 == (bfd *)0x0) &&\n                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))) {\n                local_74 = pbVar13;\n              }\n            }\n          }\n          if (local_78 != (bfd_link_needed_list *)0x2) goto LAB_00040ee8;\n          pbVar13 = (pbVar13->link).next;\n          link_info._2_2_ = link_info._2_2_ & 0x3fff | 0x8000;\n        } while (pbVar13 != (bfd *)0x0);\nLAB_00040fe6:\n        if ((local_74 == (bfd *)0x0) ||\n           (pbVar21 = (bfd_link_hash_entry *)\n                      bfd_make_section_with_flags\n                                (local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8),\n           pbVar21 == (bfd_link_hash_entry *)0x0)) {\n          if (bVar31) {\n            pcVar11 = (char *)dcgettext(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5);\n            einfo(pcVar11);\n          }\n        }\n        else {\n          pbVar21[2].u.i.warning = (char *)0x2;\n          pbVar5[4].undefs_tail = pbVar21;\n        }\n      }\n      pbVar7 = (bfd_link_needed_list *)bfd_elf_get_needed_list(link_info.output_bfd,&link_info);\n      local_78 = pbVar7;\n      if (pbVar7 != (bfd_link_needed_list *)0x0) {\nLAB_000407c0:\n        pbVar4 = pbVar7;\n        if ((local_78->by == (bfd *)0x0) ||\n           ((uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 1) == 0 &&\n            (((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0)))))) {\n          for (; pbVar4 != local_78; pbVar4 = pbVar4->next) {\n            if (((pbVar4->by == (bfd *)0x0) ||\n                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)) &&\n               (iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0)) {\n              if (pbVar4 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          global_found = (lang_input_statement_type *)0x0;\n          global_needed = local_78;\n          real_func = gldaarch64elf_check_needed;\n          lang_for_each_input_file(aarch64_for_each_input_file_wrapper);\n          if ((global_found == (lang_input_statement_type *)0x0) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(global_found->the_bfd), (uVar8 & 1) != 0)) {\n            pbVar13 = local_78->by;\n            pcVar11 = local_78->name;\n            n.by = pbVar13;\n            n.name = pcVar11;\n            nn.by = pbVar13;\n            if (verbose != 0) {\n              pcVar20 = (char *)dcgettext(0,"%s needed by %pB\n",5);\n              info_msg(pcVar20,pcVar11,pbVar13);\n            }\n            if (global_found == (lang_input_statement_type *)0x0) {\nLAB_00040998:\n              local_64 = (dt_needed *)0x0;\n              do {\n                pcVar20 = n.name;\n                pcVar11 = command_line.rpath_link;\n                if (*n.name == '/') {\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }\n                else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }\n                sVar12 = strlen(local_78->name);\n                if (search_head != (search_dirs_type *)0x0) {\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }\n                if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;\n                local_64 = (dt_needed *)0x1;\n              } while( true );\n            }\n            nn.name = global_found->filename;\n            bVar10 = gldaarch64elf_try_needed(&nn,(int)nn.name,(dt_needed *)0x1);\n            if (bVar10 == 0) goto LAB_00040998;\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((link_info._3_1_ & 0xc0) == 0x80) &&\n         (iVar9 = bfd_elf_parse_eh_frame_entries(0,&link_info), iVar9 == 0)) {\n        pcVar11 = (char *)dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        einfo(pcVar11);\n      }\n    }" else (compound_statement "{\n      if (((link_info._4_1_ & 0x20) == 0) && (link_info.input_bfds != (bfd *)0x0)) {\n        local_78 = (bfd_link_needed_list *)0x0;\n        bVar31 = false;\n        local_74 = (bfd *)0x0;\n        pbVar13 = link_info.input_bfds;\n        do {\n          while ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            pbVar13 = (pbVar13->link).next;\n            if (pbVar13 == (bfd *)0x0) goto LAB_00040fe6;\n          }\n          pbVar24 = pbVar13->sections;\n          if (pbVar24 != (bfd_section *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar33 = pbVar24->output_section <\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              bVar30 = pbVar24->output_section ==\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              pcVar11 = local_84;\n              if (!bVar30) {\n                iVar9 = 0xf;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar30);\n                bVar32 = false;\n                bVar33 = (!bVar33 && !bVar30) == bVar33;\n                if (bVar33) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar9 = 10;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar33);\n                if (((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {\n                  pcVar11 = local_84;\n                }\n              }\n              local_84 = pcVar11;\n              pbVar24 = pbVar24->next;\n            } while (pbVar24 != (bfd_section *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pbVar7 = (bfd_link_needed_list *)local_84;\n              if ((local_78 != (bfd_link_needed_list *)0x0) &&\n                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)) {\n                if (local_84 != (char *)0x1) {\n                  pbVar13 = local_74;\n                }\n                pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5);\n                einfo(pcVar11,pbVar13);\n                break;\n              }\n              local_78 = pbVar7;\n              if ((local_74 == (bfd *)0x0) &&\n                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))) {\n                local_74 = pbVar13;\n              }\n            }\n          }\n          if (local_78 != (bfd_link_needed_list *)0x2) goto LAB_00040ee8;\n          pbVar13 = (pbVar13->link).next;\n          link_info._2_2_ = link_info._2_2_ & 0x3fff | 0x8000;\n        } while (pbVar13 != (bfd *)0x0);\nLAB_00040fe6:\n        if ((local_74 == (bfd *)0x0) ||\n           (pbVar21 = (bfd_link_hash_entry *)\n                      bfd_make_section_with_flags\n                                (local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8),\n           pbVar21 == (bfd_link_hash_entry *)0x0)) {\n          if (bVar31) {\n            pcVar11 = (char *)dcgettext(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5);\n            einfo(pcVar11);\n          }\n        }\n        else {\n          pbVar21[2].u.i.warning = (char *)0x2;\n          pbVar5[4].undefs_tail = pbVar21;\n        }\n      }\n      pbVar7 = (bfd_link_needed_list *)bfd_elf_get_needed_list(link_info.output_bfd,&link_info);\n      local_78 = pbVar7;\n      if (pbVar7 != (bfd_link_needed_list *)0x0) {\nLAB_000407c0:\n        pbVar4 = pbVar7;\n        if ((local_78->by == (bfd *)0x0) ||\n           ((uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 1) == 0 &&\n            (((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0)))))) {\n          for (; pbVar4 != local_78; pbVar4 = pbVar4->next) {\n            if (((pbVar4->by == (bfd *)0x0) ||\n                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)) &&\n               (iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0)) {\n              if (pbVar4 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          global_found = (lang_input_statement_type *)0x0;\n          global_needed = local_78;\n          real_func = gldaarch64elf_check_needed;\n          lang_for_each_input_file(aarch64_for_each_input_file_wrapper);\n          if ((global_found == (lang_input_statement_type *)0x0) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(global_found->the_bfd), (uVar8 & 1) != 0)) {\n            pbVar13 = local_78->by;\n            pcVar11 = local_78->name;\n            n.by = pbVar13;\n            n.name = pcVar11;\n            nn.by = pbVar13;\n            if (verbose != 0) {\n              pcVar20 = (char *)dcgettext(0,"%s needed by %pB\n",5);\n              info_msg(pcVar20,pcVar11,pbVar13);\n            }\n            if (global_found == (lang_input_statement_type *)0x0) {\nLAB_00040998:\n              local_64 = (dt_needed *)0x0;\n              do {\n                pcVar20 = n.name;\n                pcVar11 = command_line.rpath_link;\n                if (*n.name == '/') {\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }\n                else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }\n                sVar12 = strlen(local_78->name);\n                if (search_head != (search_dirs_type *)0x0) {\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }\n                if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;\n                local_64 = (dt_needed *)0x1;\n              } while( true );\n            }\n            nn.name = global_found->filename;\n            bVar10 = gldaarch64elf_try_needed(&nn,(int)nn.name,(dt_needed *)0x1);\n            if (bVar10 == 0) goto LAB_00040998;\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((link_info._3_1_ & 0xc0) == 0x80) &&\n         (iVar9 = bfd_elf_parse_eh_frame_entries(0,&link_info), iVar9 == 0)) {\n        pcVar11 = (char *)dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        einfo(pcVar11);\n      }\n    }" { (if_statement "if (((link_info._4_1_ & 0x20) == 0) && (link_info.input_bfds != (bfd *)0x0)) {\n        local_78 = (bfd_link_needed_list *)0x0;\n        bVar31 = false;\n        local_74 = (bfd *)0x0;\n        pbVar13 = link_info.input_bfds;\n        do {\n          while ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            pbVar13 = (pbVar13->link).next;\n            if (pbVar13 == (bfd *)0x0) goto LAB_00040fe6;\n          }\n          pbVar24 = pbVar13->sections;\n          if (pbVar24 != (bfd_section *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar33 = pbVar24->output_section <\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              bVar30 = pbVar24->output_section ==\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              pcVar11 = local_84;\n              if (!bVar30) {\n                iVar9 = 0xf;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar30);\n                bVar32 = false;\n                bVar33 = (!bVar33 && !bVar30) == bVar33;\n                if (bVar33) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar9 = 10;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar33);\n                if (((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {\n                  pcVar11 = local_84;\n                }\n              }\n              local_84 = pcVar11;\n              pbVar24 = pbVar24->next;\n            } while (pbVar24 != (bfd_section *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pbVar7 = (bfd_link_needed_list *)local_84;\n              if ((local_78 != (bfd_link_needed_list *)0x0) &&\n                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)) {\n                if (local_84 != (char *)0x1) {\n                  pbVar13 = local_74;\n                }\n                pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5);\n                einfo(pcVar11,pbVar13);\n                break;\n              }\n              local_78 = pbVar7;\n              if ((local_74 == (bfd *)0x0) &&\n                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))) {\n                local_74 = pbVar13;\n              }\n            }\n          }\n          if (local_78 != (bfd_link_needed_list *)0x2) goto LAB_00040ee8;\n          pbVar13 = (pbVar13->link).next;\n          link_info._2_2_ = link_info._2_2_ & 0x3fff | 0x8000;\n        } while (pbVar13 != (bfd *)0x0);\nLAB_00040fe6:\n        if ((local_74 == (bfd *)0x0) ||\n           (pbVar21 = (bfd_link_hash_entry *)\n                      bfd_make_section_with_flags\n                                (local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8),\n           pbVar21 == (bfd_link_hash_entry *)0x0)) {\n          if (bVar31) {\n            pcVar11 = (char *)dcgettext(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5);\n            einfo(pcVar11);\n          }\n        }\n        else {\n          pbVar21[2].u.i.warning = (char *)0x2;\n          pbVar5[4].undefs_tail = pbVar21;\n        }\n      }" if (parenthesized_expression "(((link_info._4_1_ & 0x20) == 0) && (link_info.input_bfds != (bfd *)0x0))" ( (binary_expression "((link_info._4_1_ & 0x20) == 0) && (link_info.input_bfds != (bfd *)0x0)" (parenthesized_expression "((link_info._4_1_ & 0x20) == 0)" ( (binary_expression "(link_info._4_1_ & 0x20) == 0" (parenthesized_expression "(link_info._4_1_ & 0x20)" ( (binary_expression "link_info._4_1_ & 0x20" (field_expression "link_info._4_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(link_info.input_bfds != (bfd *)0x0)" ( (binary_expression "link_info.input_bfds != (bfd *)0x0" (field_expression "link_info.input_bfds" identifier . field_identifier) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        local_78 = (bfd_link_needed_list *)0x0;\n        bVar31 = false;\n        local_74 = (bfd *)0x0;\n        pbVar13 = link_info.input_bfds;\n        do {\n          while ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            pbVar13 = (pbVar13->link).next;\n            if (pbVar13 == (bfd *)0x0) goto LAB_00040fe6;\n          }\n          pbVar24 = pbVar13->sections;\n          if (pbVar24 != (bfd_section *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar33 = pbVar24->output_section <\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              bVar30 = pbVar24->output_section ==\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              pcVar11 = local_84;\n              if (!bVar30) {\n                iVar9 = 0xf;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar30);\n                bVar32 = false;\n                bVar33 = (!bVar33 && !bVar30) == bVar33;\n                if (bVar33) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar9 = 10;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar33);\n                if (((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {\n                  pcVar11 = local_84;\n                }\n              }\n              local_84 = pcVar11;\n              pbVar24 = pbVar24->next;\n            } while (pbVar24 != (bfd_section *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pbVar7 = (bfd_link_needed_list *)local_84;\n              if ((local_78 != (bfd_link_needed_list *)0x0) &&\n                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)) {\n                if (local_84 != (char *)0x1) {\n                  pbVar13 = local_74;\n                }\n                pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5);\n                einfo(pcVar11,pbVar13);\n                break;\n              }\n              local_78 = pbVar7;\n              if ((local_74 == (bfd *)0x0) &&\n                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))) {\n                local_74 = pbVar13;\n              }\n            }\n          }\n          if (local_78 != (bfd_link_needed_list *)0x2) goto LAB_00040ee8;\n          pbVar13 = (pbVar13->link).next;\n          link_info._2_2_ = link_info._2_2_ & 0x3fff | 0x8000;\n        } while (pbVar13 != (bfd *)0x0);\nLAB_00040fe6:\n        if ((local_74 == (bfd *)0x0) ||\n           (pbVar21 = (bfd_link_hash_entry *)\n                      bfd_make_section_with_flags\n                                (local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8),\n           pbVar21 == (bfd_link_hash_entry *)0x0)) {\n          if (bVar31) {\n            pcVar11 = (char *)dcgettext(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5);\n            einfo(pcVar11);\n          }\n        }\n        else {\n          pbVar21[2].u.i.warning = (char *)0x2;\n          pbVar5[4].undefs_tail = pbVar21;\n        }\n      }" { (expression_statement "local_78 = (bfd_link_needed_list *)0x0;" (assignment_expression "local_78 = (bfd_link_needed_list *)0x0" identifier = (cast_expression "(bfd_link_needed_list *)0x0" ( (type_descriptor "bfd_link_needed_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" identifier = false) ;) (expression_statement "local_74 = (bfd *)0x0;" (assignment_expression "local_74 = (bfd *)0x0" identifier = (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar13 = link_info.input_bfds;" (assignment_expression "pbVar13 = link_info.input_bfds" identifier = (field_expression "link_info.input_bfds" identifier . field_identifier)) ;) (do_statement "do {\n          while ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            pbVar13 = (pbVar13->link).next;\n            if (pbVar13 == (bfd *)0x0) goto LAB_00040fe6;\n          }\n          pbVar24 = pbVar13->sections;\n          if (pbVar24 != (bfd_section *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar33 = pbVar24->output_section <\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              bVar30 = pbVar24->output_section ==\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              pcVar11 = local_84;\n              if (!bVar30) {\n                iVar9 = 0xf;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar30);\n                bVar32 = false;\n                bVar33 = (!bVar33 && !bVar30) == bVar33;\n                if (bVar33) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar9 = 10;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar33);\n                if (((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {\n                  pcVar11 = local_84;\n                }\n              }\n              local_84 = pcVar11;\n              pbVar24 = pbVar24->next;\n            } while (pbVar24 != (bfd_section *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pbVar7 = (bfd_link_needed_list *)local_84;\n              if ((local_78 != (bfd_link_needed_list *)0x0) &&\n                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)) {\n                if (local_84 != (char *)0x1) {\n                  pbVar13 = local_74;\n                }\n                pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5);\n                einfo(pcVar11,pbVar13);\n                break;\n              }\n              local_78 = pbVar7;\n              if ((local_74 == (bfd *)0x0) &&\n                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))) {\n                local_74 = pbVar13;\n              }\n            }\n          }\n          if (local_78 != (bfd_link_needed_list *)0x2) goto LAB_00040ee8;\n          pbVar13 = (pbVar13->link).next;\n          link_info._2_2_ = link_info._2_2_ & 0x3fff | 0x8000;\n        } while (pbVar13 != (bfd *)0x0);" do (compound_statement "{\n          while ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            pbVar13 = (pbVar13->link).next;\n            if (pbVar13 == (bfd *)0x0) goto LAB_00040fe6;\n          }\n          pbVar24 = pbVar13->sections;\n          if (pbVar24 != (bfd_section *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar33 = pbVar24->output_section <\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              bVar30 = pbVar24->output_section ==\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              pcVar11 = local_84;\n              if (!bVar30) {\n                iVar9 = 0xf;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar30);\n                bVar32 = false;\n                bVar33 = (!bVar33 && !bVar30) == bVar33;\n                if (bVar33) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar9 = 10;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar33);\n                if (((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {\n                  pcVar11 = local_84;\n                }\n              }\n              local_84 = pcVar11;\n              pbVar24 = pbVar24->next;\n            } while (pbVar24 != (bfd_section *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pbVar7 = (bfd_link_needed_list *)local_84;\n              if ((local_78 != (bfd_link_needed_list *)0x0) &&\n                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)) {\n                if (local_84 != (char *)0x1) {\n                  pbVar13 = local_74;\n                }\n                pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5);\n                einfo(pcVar11,pbVar13);\n                break;\n              }\n              local_78 = pbVar7;\n              if ((local_74 == (bfd *)0x0) &&\n                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))) {\n                local_74 = pbVar13;\n              }\n            }\n          }\n          if (local_78 != (bfd_link_needed_list *)0x2) goto LAB_00040ee8;\n          pbVar13 = (pbVar13->link).next;\n          link_info._2_2_ = link_info._2_2_ & 0x3fff | 0x8000;\n        }" { (while_statement "while ((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            pbVar13 = (pbVar13->link).next;\n            if (pbVar13 == (bfd *)0x0) goto LAB_00040fe6;\n          }" while (parenthesized_expression "((*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) != 0)" ( (binary_expression "(*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10) != 0" (parenthesized_expression "(*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10)" ( (binary_expression "*(byte *)((int)pbVar13->usrdata + 0x24) & 0x10" (pointer_expression "*(byte *)((int)pbVar13->usrdata + 0x24)" * (cast_expression "(byte *)((int)pbVar13->usrdata + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar13->usrdata + 0x24)" ( (binary_expression "(int)pbVar13->usrdata + 0x24" (cast_expression "(int)pbVar13->usrdata" ( (type_descriptor "int" primitive_type) ) (field_expression "pbVar13->usrdata" identifier -> field_identifier)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_00040ee8:\n            pbVar13 = (pbVar13->link).next;\n            if (pbVar13 == (bfd *)0x0) goto LAB_00040fe6;\n          }" { (labeled_statement "LAB_00040ee8:\n            pbVar13 = (pbVar13->link).next;" statement_identifier : (expression_statement "pbVar13 = (pbVar13->link).next;" (assignment_expression "pbVar13 = (pbVar13->link).next" identifier = (field_expression "(pbVar13->link).next" (parenthesized_expression "(pbVar13->link)" ( (field_expression "pbVar13->link" identifier -> field_identifier) )) . field_identifier)) ;)) (if_statement "if (pbVar13 == (bfd *)0x0) goto LAB_00040fe6;" if (parenthesized_expression "(pbVar13 == (bfd *)0x0)" ( (binary_expression "pbVar13 == (bfd *)0x0" identifier == (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00040fe6;" goto statement_identifier ;)) })) (expression_statement "pbVar24 = pbVar13->sections;" (assignment_expression "pbVar24 = pbVar13->sections" identifier = (field_expression "pbVar13->sections" identifier -> field_identifier)) ;) (if_statement "if (pbVar24 != (bfd_section *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar33 = pbVar24->output_section <\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              bVar30 = pbVar24->output_section ==\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              pcVar11 = local_84;\n              if (!bVar30) {\n                iVar9 = 0xf;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar30);\n                bVar32 = false;\n                bVar33 = (!bVar33 && !bVar30) == bVar33;\n                if (bVar33) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar9 = 10;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar33);\n                if (((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {\n                  pcVar11 = local_84;\n                }\n              }\n              local_84 = pcVar11;\n              pbVar24 = pbVar24->next;\n            } while (pbVar24 != (bfd_section *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pbVar7 = (bfd_link_needed_list *)local_84;\n              if ((local_78 != (bfd_link_needed_list *)0x0) &&\n                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)) {\n                if (local_84 != (char *)0x1) {\n                  pbVar13 = local_74;\n                }\n                pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5);\n                einfo(pcVar11,pbVar13);\n                break;\n              }\n              local_78 = pbVar7;\n              if ((local_74 == (bfd *)0x0) &&\n                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))) {\n                local_74 = pbVar13;\n              }\n            }\n          }" if (parenthesized_expression "(pbVar24 != (bfd_section *)0x0)" ( (binary_expression "pbVar24 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_84 = (char *)0x0;\n            do {\n              bVar33 = pbVar24->output_section <\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              bVar30 = pbVar24->output_section ==\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              pcVar11 = local_84;\n              if (!bVar30) {\n                iVar9 = 0xf;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar30);\n                bVar32 = false;\n                bVar33 = (!bVar33 && !bVar30) == bVar33;\n                if (bVar33) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar9 = 10;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar33);\n                if (((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {\n                  pcVar11 = local_84;\n                }\n              }\n              local_84 = pcVar11;\n              pbVar24 = pbVar24->next;\n            } while (pbVar24 != (bfd_section *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pbVar7 = (bfd_link_needed_list *)local_84;\n              if ((local_78 != (bfd_link_needed_list *)0x0) &&\n                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)) {\n                if (local_84 != (char *)0x1) {\n                  pbVar13 = local_74;\n                }\n                pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5);\n                einfo(pcVar11,pbVar13);\n                break;\n              }\n              local_78 = pbVar7;\n              if ((local_74 == (bfd *)0x0) &&\n                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))) {\n                local_74 = pbVar13;\n              }\n            }\n          }" { (expression_statement "local_84 = (char *)0x0;" (assignment_expression "local_84 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              bVar33 = pbVar24->output_section <\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              bVar30 = pbVar24->output_section ==\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              pcVar11 = local_84;\n              if (!bVar30) {\n                iVar9 = 0xf;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar30);\n                bVar32 = false;\n                bVar33 = (!bVar33 && !bVar30) == bVar33;\n                if (bVar33) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar9 = 10;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar33);\n                if (((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {\n                  pcVar11 = local_84;\n                }\n              }\n              local_84 = pcVar11;\n              pbVar24 = pbVar24->next;\n            } while (pbVar24 != (bfd_section *)0x0);" do (compound_statement "{\n              bVar33 = pbVar24->output_section <\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              bVar30 = pbVar24->output_section ==\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n              pcVar11 = local_84;\n              if (!bVar30) {\n                iVar9 = 0xf;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar30);\n                bVar32 = false;\n                bVar33 = (!bVar33 && !bVar30) == bVar33;\n                if (bVar33) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar9 = 10;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar33);\n                if (((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {\n                  pcVar11 = local_84;\n                }\n              }\n              local_84 = pcVar11;\n              pbVar24 = pbVar24->next;\n            }" { (expression_statement "bVar33 = pbVar24->output_section <\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);" (assignment_expression "bVar33 = pbVar24->output_section <\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180)" identifier = (binary_expression "pbVar24->output_section <\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180)" (field_expression "pbVar24->output_section" identifier -> field_identifier) < (cast_expression "(bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_001c1fd4 + 0x180)" ( (binary_expression "PTR__bfd_std_section_001c1fd4 + 0x180" identifier + number_literal) ))))) ;) (expression_statement "bVar30 = pbVar24->output_section ==\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);" (assignment_expression "bVar30 = pbVar24->output_section ==\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180)" identifier = (binary_expression "pbVar24->output_section ==\n                       (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180)" (field_expression "pbVar24->output_section" identifier -> field_identifier) == (cast_expression "(bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_001c1fd4 + 0x180)" ( (binary_expression "PTR__bfd_std_section_001c1fd4 + 0x180" identifier + number_literal) ))))) ;) (expression_statement "pcVar11 = local_84;" (assignment_expression "pcVar11 = local_84" identifier = identifier) ;) (if_statement "if (!bVar30) {\n                iVar9 = 0xf;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar30);\n                bVar32 = false;\n                bVar33 = (!bVar33 && !bVar30) == bVar33;\n                if (bVar33) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar9 = 10;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar33);\n                if (((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {\n                  pcVar11 = local_84;\n                }\n              }" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (compound_statement "{\n                iVar9 = 0xf;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar30);\n                bVar32 = false;\n                bVar33 = (!bVar33 && !bVar30) == bVar33;\n                if (bVar33) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar9 = 10;\n                pbVar18 = (byte *)pbVar24->name;\n                pbVar25 = (byte *)".eh_frame";\n                do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar33);\n                if (((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {\n                  pcVar11 = local_84;\n                }\n              }" { (expression_statement "iVar9 = 0xf;" (assignment_expression "iVar9 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)pbVar24->name;" (assignment_expression "pbVar18 = (byte *)pbVar24->name" identifier = (cast_expression "(byte *)pbVar24->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar24->name" identifier -> field_identifier))) ;) (expression_statement "pbVar25 = (byte *)".eh_frame_entry";" (assignment_expression "pbVar25 = (byte *)".eh_frame_entry"" identifier = (cast_expression "(byte *)".eh_frame_entry"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".eh_frame_entry"" " string_content "))) ;) (do_statement "do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar30);" do (compound_statement "{\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar33 = *pbVar18 < *pbVar25;\n                  bVar30 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar33 = *pbVar18 < *pbVar25;" (assignment_expression "bVar33 = *pbVar18 < *pbVar25" identifier = (binary_expression "*pbVar18 < *pbVar25" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "bVar30 = *pbVar18 == *pbVar25;" (assignment_expression "bVar30 = *pbVar18 == *pbVar25" identifier = (binary_expression "*pbVar18 == *pbVar25" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar34 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar34 * -2" identifier + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar34 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar34 * -2" identifier + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar30)" ( identifier )) ;) (expression_statement "bVar32 = false;" (assignment_expression "bVar32 = false" identifier = false) ;) (expression_statement "bVar33 = (!bVar33 && !bVar30) == bVar33;" (assignment_expression "bVar33 = (!bVar33 && !bVar30) == bVar33" identifier = (binary_expression "(!bVar33 && !bVar30) == bVar33" (parenthesized_expression "(!bVar33 && !bVar30)" ( (binary_expression "!bVar33 && !bVar30" (unary_expression "!bVar33" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar33) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }" if (parenthesized_expression "(bVar33)" ( identifier )) (compound_statement "{\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }" { (expression_statement "local_84 = (char *)0x2;" (assignment_expression "local_84 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00040f91;" goto statement_identifier ;) })) (expression_statement "iVar9 = 10;" (assignment_expression "iVar9 = 10" identifier = number_literal) ;) (expression_statement "pbVar18 = (byte *)pbVar24->name;" (assignment_expression "pbVar18 = (byte *)pbVar24->name" identifier = (cast_expression "(byte *)pbVar24->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar24->name" identifier -> field_identifier))) ;) (expression_statement "pbVar25 = (byte *)".eh_frame";" (assignment_expression "pbVar25 = (byte *)".eh_frame"" identifier = (cast_expression "(byte *)".eh_frame"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".eh_frame"" " string_content "))) ;) (do_statement "do {\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                } while (bVar33);" do (compound_statement "{\n                  if (iVar9 == 0) break;\n                  iVar9 = iVar9 + -1;\n                  bVar32 = *pbVar18 < *pbVar25;\n                  bVar33 = *pbVar18 == *pbVar25;\n                  pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                  pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar32 = *pbVar18 < *pbVar25;" (assignment_expression "bVar32 = *pbVar18 < *pbVar25" identifier = (binary_expression "*pbVar18 < *pbVar25" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "bVar33 = *pbVar18 == *pbVar25;" (assignment_expression "bVar33 = *pbVar18 == *pbVar25" identifier = (binary_expression "*pbVar18 == *pbVar25" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar34 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar34 * -2" identifier + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar34 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar34 * -2" identifier + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar33)" ( identifier )) ;) (if_statement "if (((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)) {\n                  pcVar11 = local_84;\n                }" if (parenthesized_expression "(((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1))" ( (binary_expression "((!bVar32 && !bVar33) == bVar32) &&\n                   (piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)" (parenthesized_expression "((!bVar32 && !bVar33) == bVar32)" ( (binary_expression "(!bVar32 && !bVar33) == bVar32" (parenthesized_expression "(!bVar32 && !bVar33)" ( (binary_expression "!bVar32 && !bVar33" (unary_expression "!bVar32" ! identifier) && (unary_expression "!bVar33" ! identifier)) )) == identifier) )) && (parenthesized_expression "(piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1)" ( (comma_expression "piVar1 = (int *)((int)&pbVar24->size + 4), pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1" (assignment_expression "piVar1 = (int *)((int)&pbVar24->size + 4)" identifier = (cast_expression "(int *)((int)&pbVar24->size + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pbVar24->size + 4)" ( (binary_expression "(int)&pbVar24->size + 4" (cast_expression "(int)&pbVar24->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar24->size" & (field_expression "pbVar24->size" identifier -> field_identifier))) + number_literal) )))) , (comma_expression "pcVar11 = (char *)1,\n                   *piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1" (assignment_expression "pcVar11 = (char *)1" identifier = (cast_expression "(char *)1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "*piVar1 == 0 && (uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1" (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" * identifier) == number_literal) && (binary_expression "(uint)(8 < (uint)pbVar24->size) <= (uint)-*piVar1" (call_expression "(uint)(8 < (uint)pbVar24->size)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(8 < (uint)pbVar24->size)" ( (binary_expression "8 < (uint)pbVar24->size" number_literal < (cast_expression "(uint)pbVar24->size" ( (type_descriptor "uint" type_identifier) ) (field_expression "pbVar24->size" identifier -> field_identifier))) ))) <= (binary_expression "(uint)-*piVar1" (parenthesized_expression "(uint)" ( identifier )) - (pointer_expression "*piVar1" * identifier)))))) ))) )) (compound_statement "{\n                  pcVar11 = local_84;\n                }" { (expression_statement "pcVar11 = local_84;" (assignment_expression "pcVar11 = local_84" identifier = identifier) ;) })) })) (expression_statement "local_84 = pcVar11;" (assignment_expression "local_84 = pcVar11" identifier = identifier) ;) (expression_statement "pbVar24 = pbVar24->next;" (assignment_expression "pbVar24 = pbVar24->next" identifier = (field_expression "pbVar24->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pbVar24 != (bfd_section *)0x0)" ( (binary_expression "pbVar24 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pbVar7 = (bfd_link_needed_list *)local_84;\n              if ((local_78 != (bfd_link_needed_list *)0x0) &&\n                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)) {\n                if (local_84 != (char *)0x1) {\n                  pbVar13 = local_74;\n                }\n                pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5);\n                einfo(pcVar11,pbVar13);\n                break;\n              }\n              local_78 = pbVar7;\n              if ((local_74 == (bfd *)0x0) &&\n                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))) {\n                local_74 = pbVar13;\n              }\n            }" if (parenthesized_expression "(local_84 != (char *)0x0)" ( (binary_expression "local_84 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00040f91:\n              pbVar7 = (bfd_link_needed_list *)local_84;\n              if ((local_78 != (bfd_link_needed_list *)0x0) &&\n                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)) {\n                if (local_84 != (char *)0x1) {\n                  pbVar13 = local_74;\n                }\n                pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5);\n                einfo(pcVar11,pbVar13);\n                break;\n              }\n              local_78 = pbVar7;\n              if ((local_74 == (bfd *)0x0) &&\n                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))) {\n                local_74 = pbVar13;\n              }\n            }" { (labeled_statement "LAB_00040f91:\n              pbVar7 = (bfd_link_needed_list *)local_84;" statement_identifier : (expression_statement "pbVar7 = (bfd_link_needed_list *)local_84;" (assignment_expression "pbVar7 = (bfd_link_needed_list *)local_84" identifier = (cast_expression "(bfd_link_needed_list *)local_84" ( (type_descriptor "bfd_link_needed_list *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if ((local_78 != (bfd_link_needed_list *)0x0) &&\n                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)) {\n                if (local_84 != (char *)0x1) {\n                  pbVar13 = local_74;\n                }\n                pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5);\n                einfo(pcVar11,pbVar13);\n                break;\n              }" if (parenthesized_expression "((local_78 != (bfd_link_needed_list *)0x0) &&\n                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84))" ( (binary_expression "(local_78 != (bfd_link_needed_list *)0x0) &&\n                 (pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)" (parenthesized_expression "(local_78 != (bfd_link_needed_list *)0x0)" ( (binary_expression "local_78 != (bfd_link_needed_list *)0x0" identifier != (cast_expression "(bfd_link_needed_list *)0x0" ( (type_descriptor "bfd_link_needed_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84)" ( (comma_expression "pbVar7 = local_78, local_78 != (bfd_link_needed_list *)local_84" (assignment_expression "pbVar7 = local_78" identifier = identifier) , (binary_expression "local_78 != (bfd_link_needed_list *)local_84" identifier != (cast_expression "(bfd_link_needed_list *)local_84" ( (type_descriptor "bfd_link_needed_list *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ))) )) (compound_statement "{\n                if (local_84 != (char *)0x1) {\n                  pbVar13 = local_74;\n                }\n                pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5);\n                einfo(pcVar11,pbVar13);\n                break;\n              }" { (if_statement "if (local_84 != (char *)0x1) {\n                  pbVar13 = local_74;\n                }" if (parenthesized_expression "(local_84 != (char *)0x1)" ( (binary_expression "local_84 != (char *)0x1" identifier != (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  pbVar13 = local_74;\n                }" { (expression_statement "pbVar13 = local_74;" (assignment_expression "pbVar13 = local_74" identifier = identifier) ;) })) (expression_statement "pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5);" (assignment_expression "pcVar11 = (char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5)" identifier (argument_list "(0,\n                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                            ,5)" ( number_literal , (string_literal ""%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar11,pbVar13);" (call_expression "einfo(pcVar11,pbVar13)" identifier (argument_list "(pcVar11,pbVar13)" ( identifier , identifier ))) ;) (break_statement "break;" break ;) })) (expression_statement "local_78 = pbVar7;" (assignment_expression "local_78 = pbVar7" identifier = identifier) ;) (if_statement "if ((local_74 == (bfd *)0x0) &&\n                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))) {\n                local_74 = pbVar13;\n              }" if (parenthesized_expression "((local_74 == (bfd *)0x0) &&\n                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour))))" ( (binary_expression "(local_74 == (bfd *)0x0) &&\n                 (((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))" (parenthesized_expression "(local_74 == (bfd *)0x0)" ( (binary_expression "local_74 == (bfd *)0x0" identifier == (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)))" ( (parenthesized_expression "((local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour))" ( (binary_expression "(local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&\n                  (bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)" (parenthesized_expression "(local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0))" ( (binary_expression "local_84 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)" (binary_expression "local_84 == (char *)0x2" identifier == (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "((link_info._2_2_ & 0xc000) != 0)" ( (binary_expression "(link_info._2_2_ & 0xc000) != 0" (parenthesized_expression "(link_info._2_2_ & 0xc000)" ( (binary_expression "link_info._2_2_ & 0xc000" (field_expression "link_info._2_2_" identifier . field_identifier) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour)" ( (comma_expression "bVar31 = true, pbVar13->xvec->flavour == bfd_target_elf_flavour" (assignment_expression "bVar31 = true" identifier = true) , (binary_expression "pbVar13->xvec->flavour == bfd_target_elf_flavour" (field_expression "pbVar13->xvec->flavour" (field_expression "pbVar13->xvec" identifier -> field_identifier) -> field_identifier) == identifier)) ))) )) ))) )) (compound_statement "{\n                local_74 = pbVar13;\n              }" { (expression_statement "local_74 = pbVar13;" (assignment_expression "local_74 = pbVar13" identifier = identifier) ;) })) })) })) (if_statement "if (local_78 != (bfd_link_needed_list *)0x2) goto LAB_00040ee8;" if (parenthesized_expression "(local_78 != (bfd_link_needed_list *)0x2)" ( (binary_expression "local_78 != (bfd_link_needed_list *)0x2" identifier != (cast_expression "(bfd_link_needed_list *)0x2" ( (type_descriptor "bfd_link_needed_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00040ee8;" goto statement_identifier ;)) (expression_statement "pbVar13 = (pbVar13->link).next;" (assignment_expression "pbVar13 = (pbVar13->link).next" identifier = (field_expression "(pbVar13->link).next" (parenthesized_expression "(pbVar13->link)" ( (field_expression "pbVar13->link" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "link_info._2_2_ = link_info._2_2_ & 0x3fff | 0x8000;" (assignment_expression "link_info._2_2_ = link_info._2_2_ & 0x3fff | 0x8000" (field_expression "link_info._2_2_" identifier . field_identifier) = (binary_expression "link_info._2_2_ & 0x3fff | 0x8000" (binary_expression "link_info._2_2_ & 0x3fff" (field_expression "link_info._2_2_" identifier . field_identifier) & number_literal) | number_literal)) ;) }) while (parenthesized_expression "(pbVar13 != (bfd *)0x0)" ( (binary_expression "pbVar13 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (labeled_statement "LAB_00040fe6:\n        if ((local_74 == (bfd *)0x0) ||\n           (pbVar21 = (bfd_link_hash_entry *)\n                      bfd_make_section_with_flags\n                                (local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8),\n           pbVar21 == (bfd_link_hash_entry *)0x0)) {\n          if (bVar31) {\n            pcVar11 = (char *)dcgettext(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5);\n            einfo(pcVar11);\n          }\n        }\n        else {\n          pbVar21[2].u.i.warning = (char *)0x2;\n          pbVar5[4].undefs_tail = pbVar21;\n        }" statement_identifier : (if_statement "if ((local_74 == (bfd *)0x0) ||\n           (pbVar21 = (bfd_link_hash_entry *)\n                      bfd_make_section_with_flags\n                                (local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8),\n           pbVar21 == (bfd_link_hash_entry *)0x0)) {\n          if (bVar31) {\n            pcVar11 = (char *)dcgettext(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5);\n            einfo(pcVar11);\n          }\n        }\n        else {\n          pbVar21[2].u.i.warning = (char *)0x2;\n          pbVar5[4].undefs_tail = pbVar21;\n        }" if (parenthesized_expression "((local_74 == (bfd *)0x0) ||\n           (pbVar21 = (bfd_link_hash_entry *)\n                      bfd_make_section_with_flags\n                                (local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8),\n           pbVar21 == (bfd_link_hash_entry *)0x0))" ( (binary_expression "(local_74 == (bfd *)0x0) ||\n           (pbVar21 = (bfd_link_hash_entry *)\n                      bfd_make_section_with_flags\n                                (local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8),\n           pbVar21 == (bfd_link_hash_entry *)0x0)" (parenthesized_expression "(local_74 == (bfd *)0x0)" ( (binary_expression "local_74 == (bfd *)0x0" identifier == (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pbVar21 = (bfd_link_hash_entry *)\n                      bfd_make_section_with_flags\n                                (local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8),\n           pbVar21 == (bfd_link_hash_entry *)0x0)" ( (comma_expression "pbVar21 = (bfd_link_hash_entry *)\n                      bfd_make_section_with_flags\n                                (local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8),\n           pbVar21 == (bfd_link_hash_entry *)0x0" (assignment_expression "pbVar21 = (bfd_link_hash_entry *)\n                      bfd_make_section_with_flags\n                                (local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8)" identifier = (cast_expression "(bfd_link_hash_entry *)\n                      bfd_make_section_with_flags\n                                (local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8)" ( (type_descriptor "bfd_link_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_make_section_with_flags\n                                (local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8)" identifier (argument_list "(local_74,".eh_frame_hdr",\n                                 *(uint *)((int)local_74->xvec->backend_data + 0x30) | 8)" ( identifier , (string_literal "".eh_frame_hdr"" " string_content ") , (binary_expression "*(uint *)((int)local_74->xvec->backend_data + 0x30) | 8" (pointer_expression "*(uint *)((int)local_74->xvec->backend_data + 0x30)" * (cast_expression "(uint *)((int)local_74->xvec->backend_data + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_74->xvec->backend_data + 0x30)" ( (binary_expression "(int)local_74->xvec->backend_data + 0x30" (cast_expression "(int)local_74->xvec->backend_data" ( (type_descriptor "int" primitive_type) ) (field_expression "local_74->xvec->backend_data" (field_expression "local_74->xvec" identifier -> field_identifier) -> field_identifier)) + number_literal) )))) | number_literal) ))))) , (binary_expression "pbVar21 == (bfd_link_hash_entry *)0x0" identifier == (cast_expression "(bfd_link_hash_entry *)0x0" ( (type_descriptor "bfd_link_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          if (bVar31) {\n            pcVar11 = (char *)dcgettext(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5);\n            einfo(pcVar11);\n          }\n        }" { (if_statement "if (bVar31) {\n            pcVar11 = (char *)dcgettext(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5);\n            einfo(pcVar11);\n          }" if (parenthesized_expression "(bVar31)" ( identifier )) (compound_statement "{\n            pcVar11 = (char *)dcgettext(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5);\n            einfo(pcVar11);\n          }" { (expression_statement "pcVar11 = (char *)dcgettext(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5);" (assignment_expression "pcVar11 = (char *)dcgettext(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5)" identifier (argument_list "(0,\n                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                                        ,5)" ( number_literal , (string_literal ""%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar11);" (call_expression "einfo(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;) })) }) (else_clause "else {\n          pbVar21[2].u.i.warning = (char *)0x2;\n          pbVar5[4].undefs_tail = pbVar21;\n        }" else (compound_statement "{\n          pbVar21[2].u.i.warning = (char *)0x2;\n          pbVar5[4].undefs_tail = pbVar21;\n        }" { (expression_statement "pbVar21[2].u.i.warning = (char *)0x2;" (assignment_expression "pbVar21[2].u.i.warning = (char *)0x2" (field_expression "pbVar21[2].u.i.warning" (field_expression "pbVar21[2].u.i" (field_expression "pbVar21[2].u" (subscript_expression "pbVar21[2]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar5[4].undefs_tail = pbVar21;" (assignment_expression "pbVar5[4].undefs_tail = pbVar21" (field_expression "pbVar5[4].undefs_tail" (subscript_expression "pbVar5[4]" identifier [ number_literal ]) . field_identifier) = identifier) ;) })))) })) (expression_statement "pbVar7 = (bfd_link_needed_list *)bfd_elf_get_needed_list(link_info.output_bfd,&link_info);" (assignment_expression "pbVar7 = (bfd_link_needed_list *)bfd_elf_get_needed_list(link_info.output_bfd,&link_info)" identifier = (cast_expression "(bfd_link_needed_list *)bfd_elf_get_needed_list(link_info.output_bfd,&link_info)" ( (type_descriptor "bfd_link_needed_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_elf_get_needed_list(link_info.output_bfd,&link_info)" identifier (argument_list "(link_info.output_bfd,&link_info)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , (pointer_expression "&link_info" & identifier) ))))) ;) (expression_statement "local_78 = pbVar7;" (assignment_expression "local_78 = pbVar7" identifier = identifier) ;) (if_statement "if (pbVar7 != (bfd_link_needed_list *)0x0) {\nLAB_000407c0:\n        pbVar4 = pbVar7;\n        if ((local_78->by == (bfd *)0x0) ||\n           ((uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 1) == 0 &&\n            (((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0)))))) {\n          for (; pbVar4 != local_78; pbVar4 = pbVar4->next) {\n            if (((pbVar4->by == (bfd *)0x0) ||\n                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)) &&\n               (iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0)) {\n              if (pbVar4 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          global_found = (lang_input_statement_type *)0x0;\n          global_needed = local_78;\n          real_func = gldaarch64elf_check_needed;\n          lang_for_each_input_file(aarch64_for_each_input_file_wrapper);\n          if ((global_found == (lang_input_statement_type *)0x0) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(global_found->the_bfd), (uVar8 & 1) != 0)) {\n            pbVar13 = local_78->by;\n            pcVar11 = local_78->name;\n            n.by = pbVar13;\n            n.name = pcVar11;\n            nn.by = pbVar13;\n            if (verbose != 0) {\n              pcVar20 = (char *)dcgettext(0,"%s needed by %pB\n",5);\n              info_msg(pcVar20,pcVar11,pbVar13);\n            }\n            if (global_found == (lang_input_statement_type *)0x0) {\nLAB_00040998:\n              local_64 = (dt_needed *)0x0;\n              do {\n                pcVar20 = n.name;\n                pcVar11 = command_line.rpath_link;\n                if (*n.name == '/') {\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }\n                else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }\n                sVar12 = strlen(local_78->name);\n                if (search_head != (search_dirs_type *)0x0) {\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }\n                if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;\n                local_64 = (dt_needed *)0x1;\n              } while( true );\n            }\n            nn.name = global_found->filename;\n            bVar10 = gldaarch64elf_try_needed(&nn,(int)nn.name,(dt_needed *)0x1);\n            if (bVar10 == 0) goto LAB_00040998;\n          }\n        }\n        goto LAB_00040900;\n      }" if (parenthesized_expression "(pbVar7 != (bfd_link_needed_list *)0x0)" ( (binary_expression "pbVar7 != (bfd_link_needed_list *)0x0" identifier != (cast_expression "(bfd_link_needed_list *)0x0" ( (type_descriptor "bfd_link_needed_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000407c0:\n        pbVar4 = pbVar7;\n        if ((local_78->by == (bfd *)0x0) ||\n           ((uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 1) == 0 &&\n            (((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0)))))) {\n          for (; pbVar4 != local_78; pbVar4 = pbVar4->next) {\n            if (((pbVar4->by == (bfd *)0x0) ||\n                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)) &&\n               (iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0)) {\n              if (pbVar4 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          global_found = (lang_input_statement_type *)0x0;\n          global_needed = local_78;\n          real_func = gldaarch64elf_check_needed;\n          lang_for_each_input_file(aarch64_for_each_input_file_wrapper);\n          if ((global_found == (lang_input_statement_type *)0x0) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(global_found->the_bfd), (uVar8 & 1) != 0)) {\n            pbVar13 = local_78->by;\n            pcVar11 = local_78->name;\n            n.by = pbVar13;\n            n.name = pcVar11;\n            nn.by = pbVar13;\n            if (verbose != 0) {\n              pcVar20 = (char *)dcgettext(0,"%s needed by %pB\n",5);\n              info_msg(pcVar20,pcVar11,pbVar13);\n            }\n            if (global_found == (lang_input_statement_type *)0x0) {\nLAB_00040998:\n              local_64 = (dt_needed *)0x0;\n              do {\n                pcVar20 = n.name;\n                pcVar11 = command_line.rpath_link;\n                if (*n.name == '/') {\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }\n                else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }\n                sVar12 = strlen(local_78->name);\n                if (search_head != (search_dirs_type *)0x0) {\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }\n                if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;\n                local_64 = (dt_needed *)0x1;\n              } while( true );\n            }\n            nn.name = global_found->filename;\n            bVar10 = gldaarch64elf_try_needed(&nn,(int)nn.name,(dt_needed *)0x1);\n            if (bVar10 == 0) goto LAB_00040998;\n          }\n        }\n        goto LAB_00040900;\n      }" { (labeled_statement "LAB_000407c0:\n        pbVar4 = pbVar7;" statement_identifier : (expression_statement "pbVar4 = pbVar7;" (assignment_expression "pbVar4 = pbVar7" identifier = identifier) ;)) (if_statement "if ((local_78->by == (bfd *)0x0) ||\n           ((uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 1) == 0 &&\n            (((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0)))))) {\n          for (; pbVar4 != local_78; pbVar4 = pbVar4->next) {\n            if (((pbVar4->by == (bfd *)0x0) ||\n                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)) &&\n               (iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0)) {\n              if (pbVar4 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          global_found = (lang_input_statement_type *)0x0;\n          global_needed = local_78;\n          real_func = gldaarch64elf_check_needed;\n          lang_for_each_input_file(aarch64_for_each_input_file_wrapper);\n          if ((global_found == (lang_input_statement_type *)0x0) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(global_found->the_bfd), (uVar8 & 1) != 0)) {\n            pbVar13 = local_78->by;\n            pcVar11 = local_78->name;\n            n.by = pbVar13;\n            n.name = pcVar11;\n            nn.by = pbVar13;\n            if (verbose != 0) {\n              pcVar20 = (char *)dcgettext(0,"%s needed by %pB\n",5);\n              info_msg(pcVar20,pcVar11,pbVar13);\n            }\n            if (global_found == (lang_input_statement_type *)0x0) {\nLAB_00040998:\n              local_64 = (dt_needed *)0x0;\n              do {\n                pcVar20 = n.name;\n                pcVar11 = command_line.rpath_link;\n                if (*n.name == '/') {\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }\n                else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }\n                sVar12 = strlen(local_78->name);\n                if (search_head != (search_dirs_type *)0x0) {\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }\n                if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;\n                local_64 = (dt_needed *)0x1;\n              } while( true );\n            }\n            nn.name = global_found->filename;\n            bVar10 = gldaarch64elf_try_needed(&nn,(int)nn.name,(dt_needed *)0x1);\n            if (bVar10 == 0) goto LAB_00040998;\n          }\n        }" if (parenthesized_expression "((local_78->by == (bfd *)0x0) ||\n           ((uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 1) == 0 &&\n            (((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0))))))" ( (binary_expression "(local_78->by == (bfd *)0x0) ||\n           ((uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 1) == 0 &&\n            (((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0)))))" (parenthesized_expression "(local_78->by == (bfd *)0x0)" ( (binary_expression "local_78->by == (bfd *)0x0" (field_expression "local_78->by" identifier -> field_identifier) == (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 1) == 0 &&\n            (((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0)))))" ( (parenthesized_expression "(uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 1) == 0 &&\n            (((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0))))" ( (comma_expression "uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 1) == 0 &&\n            (((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0)))" (assignment_expression "uVar8 = bfd_elf_get_dyn_lib_class(local_78->by)" identifier = (call_expression "bfd_elf_get_dyn_lib_class(local_78->by)" identifier (argument_list "(local_78->by)" ( (field_expression "local_78->by" identifier -> field_identifier) )))) , (binary_expression "(uVar8 & 1) == 0 &&\n            (((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0)))" (binary_expression "(uVar8 & 1) == 0" (parenthesized_expression "(uVar8 & 1)" ( (binary_expression "uVar8 & 1" identifier & number_literal) )) == number_literal) && (parenthesized_expression "(((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0)))" ( (parenthesized_expression "((local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0))" ( (binary_expression "(local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0)" (parenthesized_expression "(local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80))" ( (binary_expression "local_78->by == (bfd *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)" (binary_expression "local_78->by == (bfd *)0x0" (field_expression "local_78->by" identifier -> field_identifier) == (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "((link_info._2_2_ & 0x180) != 0x80)" ( (binary_expression "(link_info._2_2_ & 0x180) != 0x80" (parenthesized_expression "(link_info._2_2_ & 0x180)" ( (binary_expression "link_info._2_2_ & 0x180" (field_expression "link_info._2_2_" identifier . field_identifier) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0)" ( (comma_expression "uVar8 = bfd_elf_get_dyn_lib_class(local_78->by), (uVar8 & 4) == 0" (assignment_expression "uVar8 = bfd_elf_get_dyn_lib_class(local_78->by)" identifier = (call_expression "bfd_elf_get_dyn_lib_class(local_78->by)" identifier (argument_list "(local_78->by)" ( (field_expression "local_78->by" identifier -> field_identifier) )))) , (binary_expression "(uVar8 & 4) == 0" (parenthesized_expression "(uVar8 & 4)" ( (binary_expression "uVar8 & 4" identifier & number_literal) )) == number_literal)) ))) )) )))) )) ))) )) (compound_statement "{\n          for (; pbVar4 != local_78; pbVar4 = pbVar4->next) {\n            if (((pbVar4->by == (bfd *)0x0) ||\n                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)) &&\n               (iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0)) {\n              if (pbVar4 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          global_found = (lang_input_statement_type *)0x0;\n          global_needed = local_78;\n          real_func = gldaarch64elf_check_needed;\n          lang_for_each_input_file(aarch64_for_each_input_file_wrapper);\n          if ((global_found == (lang_input_statement_type *)0x0) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(global_found->the_bfd), (uVar8 & 1) != 0)) {\n            pbVar13 = local_78->by;\n            pcVar11 = local_78->name;\n            n.by = pbVar13;\n            n.name = pcVar11;\n            nn.by = pbVar13;\n            if (verbose != 0) {\n              pcVar20 = (char *)dcgettext(0,"%s needed by %pB\n",5);\n              info_msg(pcVar20,pcVar11,pbVar13);\n            }\n            if (global_found == (lang_input_statement_type *)0x0) {\nLAB_00040998:\n              local_64 = (dt_needed *)0x0;\n              do {\n                pcVar20 = n.name;\n                pcVar11 = command_line.rpath_link;\n                if (*n.name == '/') {\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }\n                else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }\n                sVar12 = strlen(local_78->name);\n                if (search_head != (search_dirs_type *)0x0) {\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }\n                if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;\n                local_64 = (dt_needed *)0x1;\n              } while( true );\n            }\n            nn.name = global_found->filename;\n            bVar10 = gldaarch64elf_try_needed(&nn,(int)nn.name,(dt_needed *)0x1);\n            if (bVar10 == 0) goto LAB_00040998;\n          }\n        }" { (for_statement "for (; pbVar4 != local_78; pbVar4 = pbVar4->next) {\n            if (((pbVar4->by == (bfd *)0x0) ||\n                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)) &&\n               (iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0)) {\n              if (pbVar4 != local_78) goto LAB_00040900;\n              break;\n            }\n          }" for ( ; (binary_expression "pbVar4 != local_78" identifier != identifier) ; (assignment_expression "pbVar4 = pbVar4->next" identifier = (field_expression "pbVar4->next" identifier -> field_identifier)) ) (compound_statement "{\n            if (((pbVar4->by == (bfd *)0x0) ||\n                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)) &&\n               (iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0)) {\n              if (pbVar4 != local_78) goto LAB_00040900;\n              break;\n            }\n          }" { (if_statement "if (((pbVar4->by == (bfd *)0x0) ||\n                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)) &&\n               (iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0)) {\n              if (pbVar4 != local_78) goto LAB_00040900;\n              break;\n            }" if (parenthesized_expression "(((pbVar4->by == (bfd *)0x0) ||\n                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)) &&\n               (iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0))" ( (binary_expression "((pbVar4->by == (bfd *)0x0) ||\n                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)) &&\n               (iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0)" (parenthesized_expression "((pbVar4->by == (bfd *)0x0) ||\n                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0))" ( (binary_expression "(pbVar4->by == (bfd *)0x0) ||\n                (uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)" (parenthesized_expression "(pbVar4->by == (bfd *)0x0)" ( (binary_expression "pbVar4->by == (bfd *)0x0" (field_expression "pbVar4->by" identifier -> field_identifier) == (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0)" ( (comma_expression "uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by), (uVar8 & 1) == 0" (assignment_expression "uVar8 = bfd_elf_get_dyn_lib_class(pbVar4->by)" identifier = (call_expression "bfd_elf_get_dyn_lib_class(pbVar4->by)" identifier (argument_list "(pbVar4->by)" ( (field_expression "pbVar4->by" identifier -> field_identifier) )))) , (binary_expression "(uVar8 & 1) == 0" (parenthesized_expression "(uVar8 & 1)" ( (binary_expression "uVar8 & 1" identifier & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "(iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0)" ( (comma_expression "iVar9 = strcmp(pbVar4->name,local_78->name), iVar9 == 0" (assignment_expression "iVar9 = strcmp(pbVar4->name,local_78->name)" identifier = (call_expression "strcmp(pbVar4->name,local_78->name)" identifier (argument_list "(pbVar4->name,local_78->name)" ( (field_expression "pbVar4->name" identifier -> field_identifier) , (field_expression "local_78->name" identifier -> field_identifier) )))) , (binary_expression "iVar9 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n              if (pbVar4 != local_78) goto LAB_00040900;\n              break;\n            }" { (if_statement "if (pbVar4 != local_78) goto LAB_00040900;" if (parenthesized_expression "(pbVar4 != local_78)" ( (binary_expression "pbVar4 != local_78" identifier != identifier) )) (goto_statement "goto LAB_00040900;" goto statement_identifier ;)) (break_statement "break;" break ;) })) })) (expression_statement "global_found = (lang_input_statement_type *)0x0;" (assignment_expression "global_found = (lang_input_statement_type *)0x0" identifier = (cast_expression "(lang_input_statement_type *)0x0" ( (type_descriptor "lang_input_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "global_needed = local_78;" (assignment_expression "global_needed = local_78" identifier = identifier) ;) (expression_statement "real_func = gldaarch64elf_check_needed;" (assignment_expression "real_func = gldaarch64elf_check_needed" identifier = identifier) ;) (expression_statement "lang_for_each_input_file(aarch64_for_each_input_file_wrapper);" (call_expression "lang_for_each_input_file(aarch64_for_each_input_file_wrapper)" identifier (argument_list "(aarch64_for_each_input_file_wrapper)" ( identifier ))) ;) (if_statement "if ((global_found == (lang_input_statement_type *)0x0) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(global_found->the_bfd), (uVar8 & 1) != 0)) {\n            pbVar13 = local_78->by;\n            pcVar11 = local_78->name;\n            n.by = pbVar13;\n            n.name = pcVar11;\n            nn.by = pbVar13;\n            if (verbose != 0) {\n              pcVar20 = (char *)dcgettext(0,"%s needed by %pB\n",5);\n              info_msg(pcVar20,pcVar11,pbVar13);\n            }\n            if (global_found == (lang_input_statement_type *)0x0) {\nLAB_00040998:\n              local_64 = (dt_needed *)0x0;\n              do {\n                pcVar20 = n.name;\n                pcVar11 = command_line.rpath_link;\n                if (*n.name == '/') {\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }\n                else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }\n                sVar12 = strlen(local_78->name);\n                if (search_head != (search_dirs_type *)0x0) {\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }\n                if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;\n                local_64 = (dt_needed *)0x1;\n              } while( true );\n            }\n            nn.name = global_found->filename;\n            bVar10 = gldaarch64elf_try_needed(&nn,(int)nn.name,(dt_needed *)0x1);\n            if (bVar10 == 0) goto LAB_00040998;\n          }" if (parenthesized_expression "((global_found == (lang_input_statement_type *)0x0) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(global_found->the_bfd), (uVar8 & 1) != 0))" ( (binary_expression "(global_found == (lang_input_statement_type *)0x0) ||\n             (uVar8 = bfd_elf_get_dyn_lib_class(global_found->the_bfd), (uVar8 & 1) != 0)" (parenthesized_expression "(global_found == (lang_input_statement_type *)0x0)" ( (binary_expression "global_found == (lang_input_statement_type *)0x0" identifier == (cast_expression "(lang_input_statement_type *)0x0" ( (type_descriptor "lang_input_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar8 = bfd_elf_get_dyn_lib_class(global_found->the_bfd), (uVar8 & 1) != 0)" ( (comma_expression "uVar8 = bfd_elf_get_dyn_lib_class(global_found->the_bfd), (uVar8 & 1) != 0" (assignment_expression "uVar8 = bfd_elf_get_dyn_lib_class(global_found->the_bfd)" identifier = (call_expression "bfd_elf_get_dyn_lib_class(global_found->the_bfd)" identifier (argument_list "(global_found->the_bfd)" ( (field_expression "global_found->the_bfd" identifier -> field_identifier) )))) , (binary_expression "(uVar8 & 1) != 0" (parenthesized_expression "(uVar8 & 1)" ( (binary_expression "uVar8 & 1" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n            pbVar13 = local_78->by;\n            pcVar11 = local_78->name;\n            n.by = pbVar13;\n            n.name = pcVar11;\n            nn.by = pbVar13;\n            if (verbose != 0) {\n              pcVar20 = (char *)dcgettext(0,"%s needed by %pB\n",5);\n              info_msg(pcVar20,pcVar11,pbVar13);\n            }\n            if (global_found == (lang_input_statement_type *)0x0) {\nLAB_00040998:\n              local_64 = (dt_needed *)0x0;\n              do {\n                pcVar20 = n.name;\n                pcVar11 = command_line.rpath_link;\n                if (*n.name == '/') {\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }\n                else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }\n                sVar12 = strlen(local_78->name);\n                if (search_head != (search_dirs_type *)0x0) {\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }\n                if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;\n                local_64 = (dt_needed *)0x1;\n              } while( true );\n            }\n            nn.name = global_found->filename;\n            bVar10 = gldaarch64elf_try_needed(&nn,(int)nn.name,(dt_needed *)0x1);\n            if (bVar10 == 0) goto LAB_00040998;\n          }" { (expression_statement "pbVar13 = local_78->by;" (assignment_expression "pbVar13 = local_78->by" identifier = (field_expression "local_78->by" identifier -> field_identifier)) ;) (expression_statement "pcVar11 = local_78->name;" (assignment_expression "pcVar11 = local_78->name" identifier = (field_expression "local_78->name" identifier -> field_identifier)) ;) (expression_statement "n.by = pbVar13;" (assignment_expression "n.by = pbVar13" (field_expression "n.by" identifier . field_identifier) = identifier) ;) (expression_statement "n.name = pcVar11;" (assignment_expression "n.name = pcVar11" (field_expression "n.name" identifier . field_identifier) = identifier) ;) (expression_statement "nn.by = pbVar13;" (assignment_expression "nn.by = pbVar13" (field_expression "nn.by" identifier . field_identifier) = identifier) ;) (if_statement "if (verbose != 0) {\n              pcVar20 = (char *)dcgettext(0,"%s needed by %pB\n",5);\n              info_msg(pcVar20,pcVar11,pbVar13);\n            }" if (parenthesized_expression "(verbose != 0)" ( (binary_expression "verbose != 0" identifier != number_literal) )) (compound_statement "{\n              pcVar20 = (char *)dcgettext(0,"%s needed by %pB\n",5);\n              info_msg(pcVar20,pcVar11,pbVar13);\n            }" { (expression_statement "pcVar20 = (char *)dcgettext(0,"%s needed by %pB\n",5);" (assignment_expression "pcVar20 = (char *)dcgettext(0,"%s needed by %pB\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%s needed by %pB\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%s needed by %pB\n",5)" identifier (argument_list "(0,"%s needed by %pB\n",5)" ( number_literal , (string_literal ""%s needed by %pB\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "info_msg(pcVar20,pcVar11,pbVar13);" (call_expression "info_msg(pcVar20,pcVar11,pbVar13)" identifier (argument_list "(pcVar20,pcVar11,pbVar13)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (global_found == (lang_input_statement_type *)0x0) {\nLAB_00040998:\n              local_64 = (dt_needed *)0x0;\n              do {\n                pcVar20 = n.name;\n                pcVar11 = command_line.rpath_link;\n                if (*n.name == '/') {\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }\n                else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }\n                sVar12 = strlen(local_78->name);\n                if (search_head != (search_dirs_type *)0x0) {\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }\n                if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;\n                local_64 = (dt_needed *)0x1;\n              } while( true );\n            }" if (parenthesized_expression "(global_found == (lang_input_statement_type *)0x0)" ( (binary_expression "global_found == (lang_input_statement_type *)0x0" identifier == (cast_expression "(lang_input_statement_type *)0x0" ( (type_descriptor "lang_input_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00040998:\n              local_64 = (dt_needed *)0x0;\n              do {\n                pcVar20 = n.name;\n                pcVar11 = command_line.rpath_link;\n                if (*n.name == '/') {\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }\n                else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }\n                sVar12 = strlen(local_78->name);\n                if (search_head != (search_dirs_type *)0x0) {\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }\n                if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;\n                local_64 = (dt_needed *)0x1;\n              } while( true );\n            }" { (labeled_statement "LAB_00040998:\n              local_64 = (dt_needed *)0x0;" statement_identifier : (expression_statement "local_64 = (dt_needed *)0x0;" (assignment_expression "local_64 = (dt_needed *)0x0" identifier = (cast_expression "(dt_needed *)0x0" ( (type_descriptor "dt_needed *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (do_statement "do {\n                pcVar20 = n.name;\n                pcVar11 = command_line.rpath_link;\n                if (*n.name == '/') {\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }\n                else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }\n                sVar12 = strlen(local_78->name);\n                if (search_head != (search_dirs_type *)0x0) {\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }\n                if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;\n                local_64 = (dt_needed *)0x1;\n              } while( true );" do (compound_statement "{\n                pcVar20 = n.name;\n                pcVar11 = command_line.rpath_link;\n                if (*n.name == '/') {\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }\n                else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }\n                sVar12 = strlen(local_78->name);\n                if (search_head != (search_dirs_type *)0x0) {\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }\n                if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;\n                local_64 = (dt_needed *)0x1;\n              }" { (expression_statement "pcVar20 = n.name;" (assignment_expression "pcVar20 = n.name" identifier = (field_expression "n.name" identifier . field_identifier)) ;) (expression_statement "pcVar11 = command_line.rpath_link;" (assignment_expression "pcVar11 = command_line.rpath_link" identifier = (field_expression "command_line.rpath_link" identifier . field_identifier)) ;) (if_statement "if (*n.name == '/') {\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }\n                else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }" if (parenthesized_expression "(*n.name == '/')" ( (binary_expression "*n.name == '/'" (pointer_expression "*n.name" * (field_expression "n.name" identifier . field_identifier)) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n                  bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);\n                  if (bVar10 != 0) goto LAB_00040900;\n                }" { (expression_statement "bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64);" (assignment_expression "bVar10 = gldaarch64elf_try_needed(&n,(int)n.name,local_64)" identifier = (call_expression "gldaarch64elf_try_needed(&n,(int)n.name,local_64)" identifier (argument_list "(&n,(int)n.name,local_64)" ( (pointer_expression "&n" & identifier) , (cast_expression "(int)n.name" ( (type_descriptor "int" primitive_type) ) (field_expression "n.name" identifier . field_identifier)) , identifier )))) ;) (if_statement "if (bVar10 != 0) goto LAB_00040900;" if (parenthesized_expression "(bVar10 != 0)" ( (binary_expression "bVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00040900;" goto statement_identifier ;)) }) (else_clause "else if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }" else (if_statement "if ((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')) {\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }" if (parenthesized_expression "((command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0'))" ( (binary_expression "(command_line.rpath_link != (char *)0x0) &&\n                        (*command_line.rpath_link != '\0')" (parenthesized_expression "(command_line.rpath_link != (char *)0x0)" ( (binary_expression "command_line.rpath_link != (char *)0x0" (field_expression "command_line.rpath_link" identifier . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*command_line.rpath_link != '\0')" ( (binary_expression "*command_line.rpath_link != '\0'" (pointer_expression "*command_line.rpath_link" * (field_expression "command_line.rpath_link" identifier . field_identifier)) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                  needed.by = n.by;\n                  needed.name = n.name;\n                  sVar12 = strlen(n.name);\n                  do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );\n                }" { (expression_statement "needed.by = n.by;" (assignment_expression "needed.by = n.by" (field_expression "needed.by" identifier . field_identifier) = (field_expression "n.by" identifier . field_identifier)) ;) (expression_statement "needed.name = n.name;" (assignment_expression "needed.name = n.name" (field_expression "needed.name" identifier . field_identifier) = (field_expression "n.name" identifier . field_identifier)) ;) (expression_statement "sVar12 = strlen(n.name);" (assignment_expression "sVar12 = strlen(n.name)" identifier = (call_expression "strlen(n.name)" identifier (argument_list "(n.name)" ( (field_expression "n.name" identifier . field_identifier) )))) ;) (do_statement "do {\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  } while( true );" do (compound_statement "{\n                    local_68 = strchr(pcVar11,(int)config.rpath_separator);\n                    if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }\n                    sVar27 = (int)local_68 - (int)pcVar11;\n                    local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);\n                    pcVar17 = local_84;\n                    if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }\n                    pcVar11 = (char *)0x0;\n                    strcpy(pcVar17,pcVar20);\n                    while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }\n                    needed.name = local_84;\n                    bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);\n                    if (bVar10 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar11 = local_68 + 1;\n                  }" { (expression_statement "local_68 = strchr(pcVar11,(int)config.rpath_separator);" (assignment_expression "local_68 = strchr(pcVar11,(int)config.rpath_separator)" identifier = (call_expression "strchr(pcVar11,(int)config.rpath_separator)" identifier (argument_list "(pcVar11,(int)config.rpath_separator)" ( identifier , (cast_expression "(int)config.rpath_separator" ( (type_descriptor "int" primitive_type) ) (field_expression "config.rpath_separator" identifier . field_identifier)) )))) ;) (if_statement "if (local_68 == (char *)0x0) {\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }" if (parenthesized_expression "(local_68 == (char *)0x0)" ( (binary_expression "local_68 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      sVar27 = strlen(pcVar11);\n                      local_68 = pcVar11 + sVar27;\n                    }" { (expression_statement "sVar27 = strlen(pcVar11);" (assignment_expression "sVar27 = strlen(pcVar11)" identifier = (call_expression "strlen(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier )))) ;) (expression_statement "local_68 = pcVar11 + sVar27;" (assignment_expression "local_68 = pcVar11 + sVar27" identifier = (binary_expression "pcVar11 + sVar27" identifier + identifier)) ;) })) (expression_statement "sVar27 = (int)local_68 - (int)pcVar11;" (assignment_expression "sVar27 = (int)local_68 - (int)pcVar11" identifier = (binary_expression "(int)local_68 - (int)pcVar11" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_84 = (char *)xmalloc(sVar12 + 2 + sVar27);" (assignment_expression "local_84 = (char *)xmalloc(sVar12 + 2 + sVar27)" identifier = (cast_expression "(char *)xmalloc(sVar12 + 2 + sVar27)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar12 + 2 + sVar27)" identifier (argument_list "(sVar12 + 2 + sVar27)" ( (binary_expression "sVar12 + 2 + sVar27" (binary_expression "sVar12 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "pcVar17 = local_84;" (assignment_expression "pcVar17 = local_84" identifier = identifier) ;) (if_statement "if (pcVar11 != local_68) {\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }" if (parenthesized_expression "(pcVar11 != local_68)" ( (binary_expression "pcVar11 != local_68" identifier != identifier) )) (compound_statement "{\n                      memcpy(local_84,pcVar11,sVar27);\n                      local_84[sVar27] = '/';\n                      pcVar17 = local_84 + sVar27 + 1;\n                    }" { (expression_statement "memcpy(local_84,pcVar11,sVar27);" (call_expression "memcpy(local_84,pcVar11,sVar27)" identifier (argument_list "(local_84,pcVar11,sVar27)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_84[sVar27] = '/';" (assignment_expression "local_84[sVar27] = '/'" (subscript_expression "local_84[sVar27]" identifier [ identifier ]) = (char_literal "'/'" ' character ')) ;) (expression_statement "pcVar17 = local_84 + sVar27 + 1;" (assignment_expression "pcVar17 = local_84 + sVar27 + 1" identifier = (binary_expression "local_84 + sVar27 + 1" (binary_expression "local_84 + sVar27" identifier + identifier) + number_literal)) ;) })) (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "strcpy(pcVar17,pcVar20);" (call_expression "strcpy(pcVar17,pcVar20)" identifier (argument_list "(pcVar17,pcVar20)" ( identifier , identifier ))) ;) (while_statement "while (pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0) {\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }" while (parenthesized_expression "(pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0)" ( (comma_expression "pcVar11 = strchr(local_84 + (int)pcVar11,0x24), pcVar11 != (char *)0x0" (assignment_expression "pcVar11 = strchr(local_84 + (int)pcVar11,0x24)" identifier = (call_expression "strchr(local_84 + (int)pcVar11,0x24)" identifier (argument_list "(local_84 + (int)pcVar11,0x24)" ( (binary_expression "local_84 + (int)pcVar11" identifier + (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal )))) , (binary_expression "pcVar11 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n                      pcVar17 = strchr(pcVar11,0x2f);\n                      sVar27 = strlen(local_84);\n                      if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }\n                      bVar22 = pcVar11[1];\n                      pcVar19 = pcVar11 + 1;\n                      if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }\n                      pbVar18 = (byte *)(pcVar19 + 1);\n                      bVar31 = bVar22 < 0x4c;\n                      bVar33 = bVar22 == 0x4c;\n                      if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }\n                      free(pcVar29);\n                    }" { (expression_statement "pcVar17 = strchr(pcVar11,0x2f);" (assignment_expression "pcVar17 = strchr(pcVar11,0x2f)" identifier = (call_expression "strchr(pcVar11,0x2f)" identifier (argument_list "(pcVar11,0x2f)" ( identifier , number_literal )))) ;) (expression_statement "sVar27 = strlen(local_84);" (assignment_expression "sVar27 = strlen(local_84)" identifier = (call_expression "strlen(local_84)" identifier (argument_list "(local_84)" ( identifier )))) ;) (if_statement "if (pcVar17 != (char *)0x0) {\n                        *pcVar17 = '\0';\n                      }" if (parenthesized_expression "(pcVar17 != (char *)0x0)" ( (binary_expression "pcVar17 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        *pcVar17 = '\0';\n                      }" { (expression_statement "*pcVar17 = '\0';" (assignment_expression "*pcVar17 = '\0'" (pointer_expression "*pcVar17" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "bVar22 = pcVar11[1];" (assignment_expression "bVar22 = pcVar11[1]" identifier = (subscript_expression "pcVar11[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar19 = pcVar11 + 1;" (assignment_expression "pcVar19 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (if_statement "if (bVar22 == 0x7b) {\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }" if (parenthesized_expression "(bVar22 == 0x7b)" ( (binary_expression "bVar22 == 0x7b" identifier == number_literal) )) (compound_statement "{\n                        bVar22 = pcVar11[2];\n                        pcVar19 = pcVar11 + 2;\n                      }" { (expression_statement "bVar22 = pcVar11[2];" (assignment_expression "bVar22 = pcVar11[2]" identifier = (subscript_expression "pcVar11[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar19 = pcVar11 + 2;" (assignment_expression "pcVar19 = pcVar11 + 2" identifier = (binary_expression "pcVar11 + 2" identifier + number_literal)) ;) })) (expression_statement "pbVar18 = (byte *)(pcVar19 + 1);" (assignment_expression "pbVar18 = (byte *)(pcVar19 + 1)" identifier = (cast_expression "(byte *)(pcVar19 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 1)" ( (binary_expression "pcVar19 + 1" identifier + number_literal) )))) ;) (expression_statement "bVar31 = bVar22 < 0x4c;" (assignment_expression "bVar31 = bVar22 < 0x4c" identifier = (binary_expression "bVar22 < 0x4c" identifier < number_literal)) ;) (expression_statement "bVar33 = bVar22 == 0x4c;" (assignment_expression "bVar33 = bVar22 == 0x4c" identifier = (binary_expression "bVar22 == 0x4c" identifier == number_literal)) ;) (if_statement "if (bVar33) {\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }\n                      else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }" if (parenthesized_expression "(bVar33)" ( identifier )) (compound_statement "{\n                        iVar9 = 3;\n                        pbVar25 = pbVar18;\n                        pbVar28 = (byte *)0x701f6;\n                        do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);\n                        bVar30 = false;\n                        bVar31 = (!bVar31 && !bVar33) == bVar31;\n                        if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }\n                        sVar15 = 5;\n                        pcVar29 = (char *)0x0;\n                        pcVar19 = "lib64";\nLAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);\n                        iVar9 = (int)pcVar11 - (int)local_84;\n                        if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }\n                        free(local_84);\n                        local_84 = pcVar14;\n                      }" { (expression_statement "iVar9 = 3;" (assignment_expression "iVar9 = 3" identifier = number_literal) ;) (expression_statement "pbVar25 = pbVar18;" (assignment_expression "pbVar25 = pbVar18" identifier = identifier) ;) (expression_statement "pbVar28 = (byte *)0x701f6;" (assignment_expression "pbVar28 = (byte *)0x701f6" identifier = (cast_expression "(byte *)0x701f6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        } while (bVar33);" do (compound_statement "{\n                          if (iVar9 == 0) break;\n                          iVar9 = iVar9 + -1;\n                          bVar31 = *pbVar25 < *pbVar28;\n                          bVar33 = *pbVar25 == *pbVar28;\n                          pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                        }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar31 = *pbVar25 < *pbVar28;" (assignment_expression "bVar31 = *pbVar25 < *pbVar28" identifier = (binary_expression "*pbVar25 < *pbVar28" (pointer_expression "*pbVar25" * identifier) < (pointer_expression "*pbVar28" * identifier))) ;) (expression_statement "bVar33 = *pbVar25 == *pbVar28;" (assignment_expression "bVar33 = *pbVar25 == *pbVar28" identifier = (binary_expression "*pbVar25 == *pbVar28" (pointer_expression "*pbVar25" * identifier) == (pointer_expression "*pbVar28" * identifier))) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar34 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar34 * -2" identifier + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;" (assignment_expression "pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1" identifier = (binary_expression "pbVar28 + (uint)bVar34 * -2 + 1" (binary_expression "pbVar28 + (uint)bVar34 * -2" identifier + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar33)" ( identifier )) ;) (expression_statement "bVar30 = false;" (assignment_expression "bVar30 = false" identifier = false) ;) (expression_statement "bVar31 = (!bVar31 && !bVar33) == bVar31;" (assignment_expression "bVar31 = (!bVar31 && !bVar33) == bVar31" identifier = (binary_expression "(!bVar31 && !bVar33) == bVar31" (parenthesized_expression "(!bVar31 && !bVar33)" ( (binary_expression "!bVar31 && !bVar33" (unary_expression "!bVar31" ! identifier) && (unary_expression "!bVar33" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar31) {\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }" if (parenthesized_expression "(!bVar31)" ( (unary_expression "!bVar31" ! identifier) )) (compound_statement "{\n                          iVar9 = 4;\n                          pbVar25 = &DAT_000af890;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);\n                          if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                        }" { (expression_statement "iVar9 = 4;" (assignment_expression "iVar9 = 4" identifier = number_literal) ;) (expression_statement "pbVar25 = &DAT_000af890;" (assignment_expression "pbVar25 = &DAT_000af890" identifier = (pointer_expression "&DAT_000af890" & identifier)) ;) (do_statement "do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          } while (bVar31);" do (compound_statement "{\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar30 = *pbVar18 < *pbVar25;\n                            bVar31 = *pbVar18 == *pbVar25;\n                            pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                          }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar30 = *pbVar18 < *pbVar25;" (assignment_expression "bVar30 = *pbVar18 < *pbVar25" identifier = (binary_expression "*pbVar18 < *pbVar25" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "bVar31 = *pbVar18 == *pbVar25;" (assignment_expression "bVar31 = *pbVar18 == *pbVar25" identifier = (binary_expression "*pbVar18 == *pbVar25" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar34 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar34 * -2" identifier + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar34 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar34 * -2" identifier + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar31)" ( identifier )) ;) (if_statement "if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;" if (parenthesized_expression "((!bVar30 && !bVar31) != bVar30)" ( (binary_expression "(!bVar30 && !bVar31) != bVar30" (parenthesized_expression "(!bVar30 && !bVar31)" ( (binary_expression "!bVar30 && !bVar31" (unary_expression "!bVar30" ! identifier) && (unary_expression "!bVar31" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00040c47;" goto statement_identifier ;)) })) (expression_statement "sVar15 = 5;" (assignment_expression "sVar15 = 5" identifier = number_literal) ;) (expression_statement "pcVar29 = (char *)0x0;" (assignment_expression "pcVar29 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar19 = "lib64";" (assignment_expression "pcVar19 = "lib64"" identifier = (string_literal ""lib64"" " string_content ")) ;) (labeled_statement "LAB_00040b60:\n                        pcVar14 = (char *)xmalloc(sVar15 + sVar27);" statement_identifier : (expression_statement "pcVar14 = (char *)xmalloc(sVar15 + sVar27);" (assignment_expression "pcVar14 = (char *)xmalloc(sVar15 + sVar27)" identifier = (cast_expression "(char *)xmalloc(sVar15 + sVar27)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar15 + sVar27)" identifier (argument_list "(sVar15 + sVar27)" ( (binary_expression "sVar15 + sVar27" identifier + identifier) ))))) ;)) (expression_statement "iVar9 = (int)pcVar11 - (int)local_84;" (assignment_expression "iVar9 = (int)pcVar11 - (int)local_84" identifier = (binary_expression "(int)pcVar11 - (int)local_84" (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (pcVar17 == (char *)0x0) {\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }\n                        else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }" if (parenthesized_expression "(pcVar17 == (char *)0x0)" ( (binary_expression "pcVar17 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + sVar27);\n                        }" { (expression_statement "sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19);" (call_expression "sprintf(pcVar14,"%.*s%s",iVar9,local_84,pcVar19)" identifier (argument_list "(pcVar14,"%.*s%s",iVar9,local_84,pcVar19)" ( identifier , (string_literal ""%.*s%s"" " string_content ") , identifier , identifier , identifier ))) ;) (expression_statement "sVar27 = strlen(pcVar19);" (assignment_expression "sVar27 = strlen(pcVar19)" identifier = (call_expression "strlen(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier )))) ;) (expression_statement "pcVar11 = (char *)(iVar9 + sVar27);" (assignment_expression "pcVar11 = (char *)(iVar9 + sVar27)" identifier = (cast_expression "(char *)(iVar9 + sVar27)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + sVar27)" ( (binary_expression "iVar9 + sVar27" identifier + identifier) )))) ;) }) (else_clause "else {\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }" else (compound_statement "{\n                          sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);\n                          sVar27 = strlen(pcVar19);\n                          pcVar11 = (char *)(iVar9 + 1 + sVar27);\n                        }" { (expression_statement "sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1);" (call_expression "sprintf(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1)" identifier (argument_list "(pcVar14,"%.*s%s/%s",iVar9,local_84,pcVar19,pcVar17 + 1)" ( identifier , (string_literal ""%.*s%s/%s"" " string_content ") , identifier , identifier , identifier , (binary_expression "pcVar17 + 1" identifier + number_literal) ))) ;) (expression_statement "sVar27 = strlen(pcVar19);" (assignment_expression "sVar27 = strlen(pcVar19)" identifier = (call_expression "strlen(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier )))) ;) (expression_statement "pcVar11 = (char *)(iVar9 + 1 + sVar27);" (assignment_expression "pcVar11 = (char *)(iVar9 + 1 + sVar27)" identifier = (cast_expression "(char *)(iVar9 + 1 + sVar27)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 1 + sVar27)" ( (binary_expression "iVar9 + 1 + sVar27" (binary_expression "iVar9 + 1" identifier + number_literal) + identifier) )))) ;) }))) (expression_statement "free(local_84);" (call_expression "free(local_84)" identifier (argument_list "(local_84)" ( identifier ))) ;) (expression_statement "local_84 = pcVar14;" (assignment_expression "local_84 = pcVar14" identifier = identifier) ;) }) (else_clause "else {\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }" else (compound_statement "{\n                        bVar31 = bVar22 < 0x4f;\n                        bVar33 = bVar22 == 0x4f;\n                        if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }\n                        if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }\n                        pcVar29 = (char *)0x0;\n                        pcVar11 = pcVar11 + (1 - (int)local_84);\n                      }" { (expression_statement "bVar31 = bVar22 < 0x4f;" (assignment_expression "bVar31 = bVar22 < 0x4f" identifier = (binary_expression "bVar22 < 0x4f" identifier < number_literal)) ;) (expression_statement "bVar33 = bVar22 == 0x4f;" (assignment_expression "bVar33 = bVar22 == 0x4f" identifier = (binary_expression "bVar22 == 0x4f" identifier == number_literal)) ;) (if_statement "if (bVar33) {\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }" if (parenthesized_expression "(bVar33)" ( identifier )) (compound_statement "{\n                          iVar9 = 6;\n                          pbVar25 = pbVar18;\n                          pbVar28 = (byte *)0x704cc;\n                          do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);\n                          bVar30 = false;\n                          bVar31 = (!bVar31 && !bVar33) == bVar31;\n                          if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }\n                          pbVar13 = needed.by;\n                          if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }\n                        }" { (expression_statement "iVar9 = 6;" (assignment_expression "iVar9 = 6" identifier = number_literal) ;) (expression_statement "pbVar25 = pbVar18;" (assignment_expression "pbVar25 = pbVar18" identifier = identifier) ;) (expression_statement "pbVar28 = (byte *)0x704cc;" (assignment_expression "pbVar28 = (byte *)0x704cc" identifier = (cast_expression "(byte *)0x704cc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          } while (bVar33);" do (compound_statement "{\n                            if (iVar9 == 0) break;\n                            iVar9 = iVar9 + -1;\n                            bVar31 = *pbVar25 < *pbVar28;\n                            bVar33 = *pbVar25 == *pbVar28;\n                            pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;\n                          }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar31 = *pbVar25 < *pbVar28;" (assignment_expression "bVar31 = *pbVar25 < *pbVar28" identifier = (binary_expression "*pbVar25 < *pbVar28" (pointer_expression "*pbVar25" * identifier) < (pointer_expression "*pbVar28" * identifier))) ;) (expression_statement "bVar33 = *pbVar25 == *pbVar28;" (assignment_expression "bVar33 = *pbVar25 == *pbVar28" identifier = (binary_expression "*pbVar25 == *pbVar28" (pointer_expression "*pbVar25" * identifier) == (pointer_expression "*pbVar28" * identifier))) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar34 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar34 * -2" identifier + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1;" (assignment_expression "pbVar28 = pbVar28 + (uint)bVar34 * -2 + 1" identifier = (binary_expression "pbVar28 + (uint)bVar34 * -2 + 1" (binary_expression "pbVar28 + (uint)bVar34 * -2" identifier + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar33)" ( identifier )) ;) (expression_statement "bVar30 = false;" (assignment_expression "bVar30 = false" identifier = false) ;) (expression_statement "bVar31 = (!bVar31 && !bVar33) == bVar31;" (assignment_expression "bVar31 = (!bVar31 && !bVar33) == bVar31" identifier = (binary_expression "(!bVar31 && !bVar33) == bVar31" (parenthesized_expression "(!bVar31 && !bVar33)" ( (binary_expression "!bVar31 && !bVar33" (unary_expression "!bVar31" ! identifier) && (unary_expression "!bVar33" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar31) {\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }" if (parenthesized_expression "(!bVar31)" ( (unary_expression "!bVar31" ! identifier) )) (compound_statement "{\n                            iVar9 = 7;\n                            pbVar25 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);\n                            if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;\n                          }" { (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pbVar25 = (byte *)"RIGIN}";" (assignment_expression "pbVar25 = (byte *)"RIGIN}"" identifier = (cast_expression "(byte *)"RIGIN}"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""RIGIN}"" " string_content "))) ;) (do_statement "do {\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            } while (bVar31);" do (compound_statement "{\n                              if (iVar9 == 0) break;\n                              iVar9 = iVar9 + -1;\n                              bVar30 = *pbVar18 < *pbVar25;\n                              bVar31 = *pbVar18 == *pbVar25;\n                              pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;\n                              pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;\n                            }" { (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar30 = *pbVar18 < *pbVar25;" (assignment_expression "bVar30 = *pbVar18 < *pbVar25" identifier = (binary_expression "*pbVar18 < *pbVar25" (pointer_expression "*pbVar18" * identifier) < (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "bVar31 = *pbVar18 == *pbVar25;" (assignment_expression "bVar31 = *pbVar18 == *pbVar25" identifier = (binary_expression "*pbVar18 == *pbVar25" (pointer_expression "*pbVar18" * identifier) == (pointer_expression "*pbVar25" * identifier))) ;) (expression_statement "pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1;" (assignment_expression "pbVar18 = pbVar18 + (uint)bVar34 * -2 + 1" identifier = (binary_expression "pbVar18 + (uint)bVar34 * -2 + 1" (binary_expression "pbVar18 + (uint)bVar34 * -2" identifier + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (uint)bVar34 * -2 + 1" identifier = (binary_expression "pbVar25 + (uint)bVar34 * -2 + 1" (binary_expression "pbVar25 + (uint)bVar34 * -2" identifier + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar31)" ( identifier )) ;) (if_statement "if ((!bVar30 && !bVar31) != bVar30) goto LAB_00040c47;" if (parenthesized_expression "((!bVar30 && !bVar31) != bVar30)" ( (binary_expression "(!bVar30 && !bVar31) != bVar30" (parenthesized_expression "(!bVar30 && !bVar31)" ( (binary_expression "!bVar30 && !bVar31" (unary_expression "!bVar30" ! identifier) && (unary_expression "!bVar31" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00040c47;" goto statement_identifier ;)) })) (expression_statement "pbVar13 = needed.by;" (assignment_expression "pbVar13 = needed.by" identifier = (field_expression "needed.by" identifier . field_identifier)) ;) (if_statement "if (((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)) {\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }" if (parenthesized_expression "(((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0))" ( (binary_expression "((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))\n                             && (pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)" (parenthesized_expression "((needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0))" ( (binary_expression "(needed.by != (bfd *)0x0) ||\n                              (pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0)" (parenthesized_expression "(needed.by != (bfd *)0x0)" ( (binary_expression "needed.by != (bfd *)0x0" (field_expression "needed.by" identifier . field_identifier) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0)" ( (comma_expression "pbVar13 = link_info.output_bfd, link_info.output_bfd != (bfd *)0x0" (assignment_expression "pbVar13 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) , (binary_expression "link_info.output_bfd != (bfd *)0x0" (field_expression "link_info.output_bfd" identifier . field_identifier) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0)" ( (comma_expression "pcVar29 = pbVar13->filename, pcVar29 != (char *)0x0" (assignment_expression "pcVar29 = pbVar13->filename" identifier = (field_expression "pbVar13->filename" identifier -> field_identifier)) , (binary_expression "pcVar29 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                            if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }\n                            pcVar29 = strrchr(pcVar19,0x2f);\n                            if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }\n                            sVar15 = strlen(pcVar19);\n                            pcVar29 = pcVar19;\n                            goto LAB_00040b60;\n                          }" { (if_statement "if (*pcVar29 == '/') {\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }\n                            else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }" if (parenthesized_expression "(*pcVar29 == '/')" ( (binary_expression "*pcVar29 == '/'" (pointer_expression "*pcVar29" * identifier) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n                              pcVar19 = (char *)xstrdup(pcVar29);\n                            }" { (expression_statement "pcVar19 = (char *)xstrdup(pcVar29);" (assignment_expression "pcVar19 = (char *)xstrdup(pcVar29)" identifier = (cast_expression "(char *)xstrdup(pcVar29)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pcVar29)" identifier (argument_list "(pcVar29)" ( identifier ))))) ;) }) (else_clause "else {\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }" else (compound_statement "{\n                              pcVar14 = (char *)getpwd();\n                              sVar15 = strlen(pcVar29);\n                              sVar16 = strlen(pcVar14);\n                              pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);\n                              sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);\n                            }" { (expression_statement "pcVar14 = (char *)getpwd();" (assignment_expression "pcVar14 = (char *)getpwd()" identifier = (cast_expression "(char *)getpwd()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "getpwd()" identifier (argument_list "()" ( ))))) ;) (expression_statement "sVar15 = strlen(pcVar29);" (assignment_expression "sVar15 = strlen(pcVar29)" identifier = (call_expression "strlen(pcVar29)" identifier (argument_list "(pcVar29)" ( identifier )))) ;) (expression_statement "sVar16 = strlen(pcVar14);" (assignment_expression "sVar16 = strlen(pcVar14)" identifier = (call_expression "strlen(pcVar14)" identifier (argument_list "(pcVar14)" ( identifier )))) ;) (expression_statement "pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16);" (assignment_expression "pcVar19 = (char *)xmalloc(sVar15 + 2 + sVar16)" identifier = (cast_expression "(char *)xmalloc(sVar15 + 2 + sVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar15 + 2 + sVar16)" identifier (argument_list "(sVar15 + 2 + sVar16)" ( (binary_expression "sVar15 + 2 + sVar16" (binary_expression "sVar15 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "sprintf(pcVar19,"%s/%s",pcVar14,pcVar29);" (call_expression "sprintf(pcVar19,"%s/%s",pcVar14,pcVar29)" identifier (argument_list "(pcVar19,"%s/%s",pcVar14,pcVar29)" ( identifier , (string_literal ""%s/%s"" " string_content ") , identifier , identifier ))) ;) }))) (expression_statement "pcVar29 = strrchr(pcVar19,0x2f);" (assignment_expression "pcVar29 = strrchr(pcVar19,0x2f)" identifier = (call_expression "strrchr(pcVar19,0x2f)" identifier (argument_list "(pcVar19,0x2f)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar29 != (char *)0x0) {\n                              *pcVar29 = '\0';\n                            }" if (parenthesized_expression "(pcVar29 != (char *)0x0)" ( (binary_expression "pcVar29 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                              *pcVar29 = '\0';\n                            }" { (expression_statement "*pcVar29 = '\0';" (assignment_expression "*pcVar29 = '\0'" (pointer_expression "*pcVar29" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "sVar15 = strlen(pcVar19);" (assignment_expression "sVar15 = strlen(pcVar19)" identifier = (call_expression "strlen(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier )))) ;) (expression_statement "pcVar29 = pcVar19;" (assignment_expression "pcVar29 = pcVar19" identifier = identifier) ;) (goto_statement "goto LAB_00040b60;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00040c47:\n                        if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }" statement_identifier : (if_statement "if (verbose != 0) {\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }" if (parenthesized_expression "(verbose != 0)" ( (binary_expression "verbose != 0" identifier != number_literal) )) (compound_statement "{\n                          pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);\n                          info_msg(pcVar19,pcVar11);\n                        }" { (expression_statement "pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5);" (assignment_expression "pcVar19 = (char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5)" identifier (argument_list "(0,\n                                                  "unrecognised or unsupported token \'%s\' in search path\n"\n                                                  ,5)" ( number_literal , (string_literal ""unrecognised or unsupported token \'%s\' in search path\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "info_msg(pcVar19,pcVar11);" (call_expression "info_msg(pcVar19,pcVar11)" identifier (argument_list "(pcVar19,pcVar11)" ( identifier , identifier ))) ;) }))) (if_statement "if (pcVar17 != (char *)0x0) {\n                          *pcVar17 = '/';\n                        }" if (parenthesized_expression "(pcVar17 != (char *)0x0)" ( (binary_expression "pcVar17 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          *pcVar17 = '/';\n                        }" { (expression_statement "*pcVar17 = '/';" (assignment_expression "*pcVar17 = '/'" (pointer_expression "*pcVar17" * identifier) = (char_literal "'/'" ' character ')) ;) })) (expression_statement "pcVar29 = (char *)0x0;" (assignment_expression "pcVar29 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar11 = pcVar11 + (1 - (int)local_84);" (assignment_expression "pcVar11 = pcVar11 + (1 - (int)local_84)" identifier = (binary_expression "pcVar11 + (1 - (int)local_84)" identifier + (parenthesized_expression "(1 - (int)local_84)" ( (binary_expression "1 - (int)local_84" number_literal - (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }))) (expression_statement "free(pcVar29);" (call_expression "free(pcVar29)" identifier (argument_list "(pcVar29)" ( identifier ))) ;) })) (expression_statement "needed.name = local_84;" (assignment_expression "needed.name = local_84" (field_expression "needed.name" identifier . field_identifier) = identifier) ;) (expression_statement "bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64);" (assignment_expression "bVar10 = gldaarch64elf_try_needed(&needed,(int)local_84,local_64)" identifier = (call_expression "gldaarch64elf_try_needed(&needed,(int)local_84,local_64)" identifier (argument_list "(&needed,(int)local_84,local_64)" ( (pointer_expression "&needed" & identifier) , (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;) (if_statement "if (bVar10 != 0) goto LAB_00040900;" if (parenthesized_expression "(bVar10 != 0)" ( (binary_expression "bVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00040900;" goto statement_identifier ;)) (expression_statement "free(local_84);" (call_expression "free(local_84)" identifier (argument_list "(local_84)" ( identifier ))) ;) (if_statement "if (*local_68 == '\0') break;" if (parenthesized_expression "(*local_68 == '\0')" ( (binary_expression "*local_68 == '\0'" (pointer_expression "*local_68" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "pcVar11 = local_68 + 1;" (assignment_expression "pcVar11 = local_68 + 1" identifier = (binary_expression "local_68 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))) (expression_statement "sVar12 = strlen(local_78->name);" (assignment_expression "sVar12 = strlen(local_78->name)" identifier = (call_expression "strlen(local_78->name)" identifier (argument_list "(local_78->name)" ( (field_expression "local_78->name" identifier -> field_identifier) )))) ;) (if_statement "if (search_head != (search_dirs_type *)0x0) {\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }" if (parenthesized_expression "(search_head != (search_dirs_type *)0x0)" ( (binary_expression "search_head != (search_dirs_type *)0x0" identifier != (cast_expression "(search_dirs_type *)0x0" ( (type_descriptor "search_dirs_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  psVar26 = search_head;\n                  do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);\n                }" { (expression_statement "psVar26 = search_head;" (assignment_expression "psVar26 = search_head" identifier = identifier) ;) (do_statement "do {\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  } while (psVar26 != (search_dirs *)0x0);" do (compound_statement "{\n                    if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }\n                    psVar26 = psVar26->next;\n                  }" { (if_statement "if (psVar26->cmdline == 0) {\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }" if (parenthesized_expression "(psVar26->cmdline == 0)" ( (binary_expression "psVar26->cmdline == 0" (field_expression "psVar26->cmdline" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                      sVar27 = strlen(psVar26->name);\n                      pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);\n                      sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);\n                      nn.name = pcVar11;\n                      bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);\n                      if (bVar10 != 0) goto LAB_00040900;\n                      free(pcVar11);\n                    }" { (expression_statement "sVar27 = strlen(psVar26->name);" (assignment_expression "sVar27 = strlen(psVar26->name)" identifier = (call_expression "strlen(psVar26->name)" identifier (argument_list "(psVar26->name)" ( (field_expression "psVar26->name" identifier -> field_identifier) )))) ;) (expression_statement "pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2);" (assignment_expression "pcVar11 = (char *)xmalloc(sVar27 + sVar12 + 2)" identifier = (cast_expression "(char *)xmalloc(sVar27 + sVar12 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar27 + sVar12 + 2)" identifier (argument_list "(sVar27 + sVar12 + 2)" ( (binary_expression "sVar27 + sVar12 + 2" (binary_expression "sVar27 + sVar12" identifier + identifier) + number_literal) ))))) ;) (expression_statement "sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name);" (call_expression "sprintf(pcVar11,"%s/%s",psVar26->name,local_78->name)" identifier (argument_list "(pcVar11,"%s/%s",psVar26->name,local_78->name)" ( identifier , (string_literal ""%s/%s"" " string_content ") , (field_expression "psVar26->name" identifier -> field_identifier) , (field_expression "local_78->name" identifier -> field_identifier) ))) ;) (expression_statement "nn.name = pcVar11;" (assignment_expression "nn.name = pcVar11" (field_expression "nn.name" identifier . field_identifier) = identifier) ;) (expression_statement "bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64);" (assignment_expression "bVar10 = gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64)" identifier = (call_expression "gldaarch64elf_try_needed(&nn,(int)pcVar11,local_64)" identifier (argument_list "(&nn,(int)pcVar11,local_64)" ( (pointer_expression "&nn" & identifier) , (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;) (if_statement "if (bVar10 != 0) goto LAB_00040900;" if (parenthesized_expression "(bVar10 != 0)" ( (binary_expression "bVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00040900;" goto statement_identifier ;)) (expression_statement "free(pcVar11);" (call_expression "free(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;) })) (expression_statement "psVar26 = psVar26->next;" (assignment_expression "psVar26 = psVar26->next" identifier = (field_expression "psVar26->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(psVar26 != (search_dirs *)0x0)" ( (binary_expression "psVar26 != (search_dirs *)0x0" identifier != (cast_expression "(search_dirs *)0x0" ( (type_descriptor "search_dirs *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (local_64 == (dt_needed *)0x1) goto code_r0x00040e73;" if (parenthesized_expression "(local_64 == (dt_needed *)0x1)" ( (binary_expression "local_64 == (dt_needed *)0x1" identifier == (cast_expression "(dt_needed *)0x1" ( (type_descriptor "dt_needed *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto code_r0x00040e73;" goto statement_identifier ;)) (expression_statement "local_64 = (dt_needed *)0x1;" (assignment_expression "local_64 = (dt_needed *)0x1" identifier = (cast_expression "(dt_needed *)0x1" ( (type_descriptor "dt_needed *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "nn.name = global_found->filename;" (assignment_expression "nn.name = global_found->filename" (field_expression "nn.name" identifier . field_identifier) = (field_expression "global_found->filename" identifier -> field_identifier)) ;) (expression_statement "bVar10 = gldaarch64elf_try_needed(&nn,(int)nn.name,(dt_needed *)0x1);" (assignment_expression "bVar10 = gldaarch64elf_try_needed(&nn,(int)nn.name,(dt_needed *)0x1)" identifier = (call_expression "gldaarch64elf_try_needed(&nn,(int)nn.name,(dt_needed *)0x1)" identifier (argument_list "(&nn,(int)nn.name,(dt_needed *)0x1)" ( (pointer_expression "&nn" & identifier) , (cast_expression "(int)nn.name" ( (type_descriptor "int" primitive_type) ) (field_expression "nn.name" identifier . field_identifier)) , (cast_expression "(dt_needed *)0x1" ( (type_descriptor "dt_needed *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar10 == 0) goto LAB_00040998;" if (parenthesized_expression "(bVar10 == 0)" ( (binary_expression "bVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00040998;" goto statement_identifier ;)) })) })) (goto_statement "goto LAB_00040900;" goto statement_identifier ;) })) (labeled_statement "LAB_00040912:\n      if (((link_info._3_1_ & 0xc0) == 0x80) &&\n         (iVar9 = bfd_elf_parse_eh_frame_entries(0,&link_info), iVar9 == 0)) {\n        pcVar11 = (char *)dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        einfo(pcVar11);\n      }" statement_identifier : (if_statement "if (((link_info._3_1_ & 0xc0) == 0x80) &&\n         (iVar9 = bfd_elf_parse_eh_frame_entries(0,&link_info), iVar9 == 0)) {\n        pcVar11 = (char *)dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        einfo(pcVar11);\n      }" if (parenthesized_expression "(((link_info._3_1_ & 0xc0) == 0x80) &&\n         (iVar9 = bfd_elf_parse_eh_frame_entries(0,&link_info), iVar9 == 0))" ( (binary_expression "((link_info._3_1_ & 0xc0) == 0x80) &&\n         (iVar9 = bfd_elf_parse_eh_frame_entries(0,&link_info), iVar9 == 0)" (parenthesized_expression "((link_info._3_1_ & 0xc0) == 0x80)" ( (binary_expression "(link_info._3_1_ & 0xc0) == 0x80" (parenthesized_expression "(link_info._3_1_ & 0xc0)" ( (binary_expression "link_info._3_1_ & 0xc0" (field_expression "link_info._3_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar9 = bfd_elf_parse_eh_frame_entries(0,&link_info), iVar9 == 0)" ( (comma_expression "iVar9 = bfd_elf_parse_eh_frame_entries(0,&link_info), iVar9 == 0" (assignment_expression "iVar9 = bfd_elf_parse_eh_frame_entries(0,&link_info)" identifier = (call_expression "bfd_elf_parse_eh_frame_entries(0,&link_info)" identifier (argument_list "(0,&link_info)" ( number_literal , (pointer_expression "&link_info" & identifier) )))) , (binary_expression "iVar9 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        pcVar11 = (char *)dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        einfo(pcVar11);\n      }" { (expression_statement "pcVar11 = (char *)dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);" (assignment_expression "pcVar11 = (char *)dcgettext(0,"%F%P: failed to parse EH frame entries\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: failed to parse EH frame entries\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: failed to parse EH frame entries\n",5)" identifier (argument_list "(0,"%F%P: failed to parse EH frame entries\n",5)" ( number_literal , (string_literal ""%F%P: failed to parse EH frame entries\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar11);" (call_expression "einfo(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;) }))) }))) })) (return_statement "return;" return ;) (labeled_statement "code_r0x00040e73:\n  pbVar13 = local_78->by;" statement_identifier : (expression_statement "pbVar13 = local_78->by;" (assignment_expression "pbVar13 = local_78->by" identifier = (field_expression "local_78->by" identifier -> field_identifier)) ;)) (expression_statement "pcVar11 = local_78->name;" (assignment_expression "pcVar11 = local_78->name" identifier = (field_expression "local_78->name" identifier -> field_identifier)) ;) (expression_statement "pcVar20 = (char *)dcgettext(0,\n                              "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                              ,5);" (assignment_expression "pcVar20 = (char *)dcgettext(0,\n                              "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                              ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                              "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                              ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                              "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                              ,5)" identifier (argument_list "(0,\n                              "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                              ,5)" ( number_literal , (string_literal ""%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar20,pcVar11,pbVar13);" (call_expression "einfo(pcVar20,pcVar11,pbVar13)" identifier (argument_list "(pcVar20,pcVar11,pbVar13)" ( identifier , identifier , identifier ))) ;) (labeled_statement "LAB_00040900:\n  ppbVar3 = &local_78->next;" statement_identifier : (expression_statement "ppbVar3 = &local_78->next;" (assignment_expression "ppbVar3 = &local_78->next" identifier = (pointer_expression "&local_78->next" & (field_expression "local_78->next" identifier -> field_identifier))) ;)) (expression_statement "local_78 = *ppbVar3;" (assignment_expression "local_78 = *ppbVar3" identifier = (pointer_expression "*ppbVar3" * identifier)) ;) (if_statement "if (*ppbVar3 == (bfd_link_needed_list *)0x0) goto LAB_00040912;" if (parenthesized_expression "(*ppbVar3 == (bfd_link_needed_list *)0x0)" ( (binary_expression "*ppbVar3 == (bfd_link_needed_list *)0x0" (pointer_expression "*ppbVar3" * identifier) == (cast_expression "(bfd_link_needed_list *)0x0" ( (type_descriptor "bfd_link_needed_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00040912;" goto statement_identifier ;)) (goto_statement "goto LAB_000407c0;" goto statement_identifier ;) })))
(translation_unit "void FUN_00040580(void)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  bool bVar3;\n  void *pvVar4;\n  char *pcVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  size_t sVar10;\n  undefined4 *puVar11;\n  char *pcVar12;\n  size_t sVar13;\n  size_t sVar14;\n  char *pcVar15;\n  char *pcVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  int iVar19;\n  byte bVar20;\n  int iVar21;\n  char *pcVar22;\n  byte *pbVar23;\n  int *piVar24;\n  size_t sVar25;\n  byte *pbVar26;\n  char *pcVar27;\n  bool bVar28;\n  bool bVar29;\n  bool bVar30;\n  byte bVar31;\n  longlong lVar32;\n  char *local_84;\n  undefined4 *local_78;\n  int local_74;\n  char *local_68;\n  \n  bVar31 = 0;\n  FUN_000339e0();\n  iVar8 = DAT_001c4600;\n  if (*(int *)(DAT_001c4600 + 0x28) == 1) {\n    if (DAT_001c46a0 != 0) {\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }\n    puVar6 = DAT_001c4614;\n    iVar19 = DAT_001c461c;\n    if (DAT_001c3be4 != (void *)0x0) {\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }\nLAB_00040754:\n    (**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);\n    if ((DAT_001c45e0 & 3) == 2) {\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }\n  }\n  return;\ncode_r0x00040e73:\n  uVar9 = local_78[1];\n  uVar2 = local_78[2];\n  uVar18 = dcgettext(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5);\n  FUN_00034dc0(uVar18,uVar2,uVar9);\nLAB_00040900:\n  local_78 = (undefined4 *)*local_78;\n  if (local_78 == (undefined4 *)0x0) goto LAB_00040912;\n  goto LAB_000407c0;\n}\n\n" (function_definition "void FUN_00040580(void)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  bool bVar3;\n  void *pvVar4;\n  char *pcVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  size_t sVar10;\n  undefined4 *puVar11;\n  char *pcVar12;\n  size_t sVar13;\n  size_t sVar14;\n  char *pcVar15;\n  char *pcVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  int iVar19;\n  byte bVar20;\n  int iVar21;\n  char *pcVar22;\n  byte *pbVar23;\n  int *piVar24;\n  size_t sVar25;\n  byte *pbVar26;\n  char *pcVar27;\n  bool bVar28;\n  bool bVar29;\n  bool bVar30;\n  byte bVar31;\n  longlong lVar32;\n  char *local_84;\n  undefined4 *local_78;\n  int local_74;\n  char *local_68;\n  \n  bVar31 = 0;\n  FUN_000339e0();\n  iVar8 = DAT_001c4600;\n  if (*(int *)(DAT_001c4600 + 0x28) == 1) {\n    if (DAT_001c46a0 != 0) {\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }\n    puVar6 = DAT_001c4614;\n    iVar19 = DAT_001c461c;\n    if (DAT_001c3be4 != (void *)0x0) {\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }\nLAB_00040754:\n    (**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);\n    if ((DAT_001c45e0 & 3) == 2) {\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }\n  }\n  return;\ncode_r0x00040e73:\n  uVar9 = local_78[1];\n  uVar2 = local_78[2];\n  uVar18 = dcgettext(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5);\n  FUN_00034dc0(uVar18,uVar2,uVar9);\nLAB_00040900:\n  local_78 = (undefined4 *)*local_78;\n  if (local_78 == (undefined4 *)0x0) goto LAB_00040912;\n  goto LAB_000407c0;\n}" primitive_type (function_declarator "FUN_00040580(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  bool bVar3;\n  void *pvVar4;\n  char *pcVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  size_t sVar10;\n  undefined4 *puVar11;\n  char *pcVar12;\n  size_t sVar13;\n  size_t sVar14;\n  char *pcVar15;\n  char *pcVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  int iVar19;\n  byte bVar20;\n  int iVar21;\n  char *pcVar22;\n  byte *pbVar23;\n  int *piVar24;\n  size_t sVar25;\n  byte *pbVar26;\n  char *pcVar27;\n  bool bVar28;\n  bool bVar29;\n  bool bVar30;\n  byte bVar31;\n  longlong lVar32;\n  char *local_84;\n  undefined4 *local_78;\n  int local_74;\n  char *local_68;\n  \n  bVar31 = 0;\n  FUN_000339e0();\n  iVar8 = DAT_001c4600;\n  if (*(int *)(DAT_001c4600 + 0x28) == 1) {\n    if (DAT_001c46a0 != 0) {\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }\n    puVar6 = DAT_001c4614;\n    iVar19 = DAT_001c461c;\n    if (DAT_001c3be4 != (void *)0x0) {\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }\nLAB_00040754:\n    (**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);\n    if ((DAT_001c45e0 & 3) == 2) {\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }\n  }\n  return;\ncode_r0x00040e73:\n  uVar9 = local_78[1];\n  uVar2 = local_78[2];\n  uVar18 = dcgettext(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5);\n  FUN_00034dc0(uVar18,uVar2,uVar9);\nLAB_00040900:\n  local_78 = (undefined4 *)*local_78;\n  if (local_78 == (undefined4 *)0x0) goto LAB_00040912;\n  goto LAB_000407c0;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "size_t sVar13;" primitive_type identifier ;) (declaration "size_t sVar14;" primitive_type identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "byte bVar20;" type_identifier identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "char *pcVar22;" primitive_type (pointer_declarator "*pcVar22" * identifier) ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "size_t sVar25;" primitive_type identifier ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "char *pcVar27;" primitive_type (pointer_declarator "*pcVar27" * identifier) ;) (declaration "bool bVar28;" primitive_type identifier ;) (declaration "bool bVar29;" primitive_type identifier ;) (declaration "bool bVar30;" primitive_type identifier ;) (declaration "byte bVar31;" type_identifier identifier ;) (declaration "longlong lVar32;" type_identifier identifier ;) (declaration "char *local_84;" primitive_type (pointer_declarator "*local_84" * identifier) ;) (declaration "undefined4 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "char *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (expression_statement "bVar31 = 0;" (assignment_expression "bVar31 = 0" identifier = number_literal) ;) (expression_statement "FUN_000339e0();" (call_expression "FUN_000339e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar8 = DAT_001c4600;" (assignment_expression "iVar8 = DAT_001c4600" identifier = identifier) ;) (if_statement "if (*(int *)(DAT_001c4600 + 0x28) == 1) {\n    if (DAT_001c46a0 != 0) {\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }\n    puVar6 = DAT_001c4614;\n    iVar19 = DAT_001c461c;\n    if (DAT_001c3be4 != (void *)0x0) {\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }\nLAB_00040754:\n    (**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);\n    if ((DAT_001c45e0 & 3) == 2) {\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }\n  }" if (parenthesized_expression "(*(int *)(DAT_001c4600 + 0x28) == 1)" ( (binary_expression "*(int *)(DAT_001c4600 + 0x28) == 1" (pointer_expression "*(int *)(DAT_001c4600 + 0x28)" * (cast_expression "(int *)(DAT_001c4600 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001c4600 + 0x28)" ( (binary_expression "DAT_001c4600 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    if (DAT_001c46a0 != 0) {\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }\n    puVar6 = DAT_001c4614;\n    iVar19 = DAT_001c461c;\n    if (DAT_001c3be4 != (void *)0x0) {\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }\nLAB_00040754:\n    (**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);\n    if ((DAT_001c45e0 & 3) == 2) {\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }\n  }" { (if_statement "if (DAT_001c46a0 != 0) {\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }" if (parenthesized_expression "(DAT_001c46a0 != 0)" ( (binary_expression "DAT_001c46a0 != 0" identifier != number_literal) )) (compound_statement "{\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }" { (expression_statement "unlink_if_ordinary(DAT_001c46a0);" (call_expression "unlink_if_ordinary(DAT_001c46a0)" identifier (argument_list "(DAT_001c46a0)" ( identifier ))) ;) (expression_statement "DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);" (assignment_expression "DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1])" identifier = (call_expression "bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1])" identifier (argument_list "(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1])" ( identifier , (pointer_expression "*(undefined4 *)DAT_001c4614[1]" * (cast_expression "(undefined4 *)DAT_001c4614[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_001c4614[1]" identifier [ number_literal ]))) )))) ;) (expression_statement "iVar19 = DAT_001c46a0;" (assignment_expression "iVar19 = DAT_001c46a0" identifier = identifier) ;) (if_statement "if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }" if (parenthesized_expression "(DAT_001c4618 == 0)" ( (binary_expression "DAT_001c4618 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }" { (expression_statement "uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5)" identifier (argument_list "(0,"%F%P: %s: can\'t open for writing: %E\n",5)" ( number_literal , (string_literal ""%F%P: %s: can\'t open for writing: %E\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034dc0(uVar9,iVar19);" (call_expression "FUN_00034dc0(uVar9,iVar19)" identifier (argument_list "(uVar9,iVar19)" ( identifier , identifier ))) ;) })) })) (expression_statement "puVar6 = DAT_001c4614;" (assignment_expression "puVar6 = DAT_001c4614" identifier = identifier) ;) (expression_statement "iVar19 = DAT_001c461c;" (assignment_expression "iVar19 = DAT_001c461c" identifier = identifier) ;) (if_statement "if (DAT_001c3be4 != (void *)0x0) {\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }" if (parenthesized_expression "(DAT_001c3be4 != (void *)0x0)" ( (binary_expression "DAT_001c3be4 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }" { (for_statement "for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }" for ( ; (binary_expression "iVar19 != 0" identifier != number_literal) ; (assignment_expression "iVar19 = *(int *)(iVar19 + 0x9c)" identifier = (pointer_expression "*(int *)(iVar19 + 0x9c)" * (cast_expression "(int *)(iVar19 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x9c)" ( (binary_expression "iVar19 + 0x9c" identifier + number_literal) ))))) ) (compound_statement "{\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }" { (if_statement "if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }" if (parenthesized_expression "(((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0))" ( (binary_expression "((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)" (parenthesized_expression "((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0))" ( (binary_expression "(*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)" (parenthesized_expression "(*(int *)(*(int *)(iVar19 + 4) + 4) == 5)" ( (binary_expression "*(int *)(*(int *)(iVar19 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(iVar19 + 4) + 4)" * (cast_expression "(int *)(*(int *)(iVar19 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 4) + 4)" ( (binary_expression "*(int *)(iVar19 + 4) + 4" (pointer_expression "*(int *)(iVar19 + 4)" * (cast_expression "(int *)(iVar19 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 4)" ( (binary_expression "iVar19 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(int *)(iVar19 + 0x68) != 0)" ( (binary_expression "*(int *)(iVar19 + 0x68) != 0" (pointer_expression "*(int *)(iVar19 + 0x68)" * (cast_expression "(int *)(iVar19 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x68)" ( (binary_expression "iVar19 + 0x68" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10)" ( (binary_expression "*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10" (pointer_expression "*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24)" * (cast_expression "(byte *)(*(int *)(iVar19 + 0xa4) + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0xa4) + 0x24)" ( (binary_expression "*(int *)(iVar19 + 0xa4) + 0x24" (pointer_expression "*(int *)(iVar19 + 0xa4)" * (cast_expression "(int *)(iVar19 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xa4)" ( (binary_expression "iVar19 + 0xa4" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }" { (expression_statement "lVar32 = FUN_00038a90(DAT_001c3be4);" (assignment_expression "lVar32 = FUN_00038a90(DAT_001c3be4)" identifier = (call_expression "FUN_00038a90(DAT_001c3be4)" identifier (argument_list "(DAT_001c3be4)" ( identifier )))) ;) (if_statement "if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }" if (parenthesized_expression "((lVar32 == 0) || (lVar32 + 0x10 == 0))" ( (binary_expression "(lVar32 == 0) || (lVar32 + 0x10 == 0)" (parenthesized_expression "(lVar32 == 0)" ( (binary_expression "lVar32 == 0" identifier == number_literal) )) || (parenthesized_expression "(lVar32 + 0x10 == 0)" ( (binary_expression "lVar32 + 0x10 == 0" (binary_expression "lVar32 + 0x10" identifier + number_literal) == number_literal) ))) )) (compound_statement "{\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }" { (expression_statement "pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";" (assignment_expression "pcVar5 = "%P: warning: unrecognized --build-id style ignored\n"" identifier = (string_literal ""%P: warning: unrecognized --build-id style ignored\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }" else (compound_statement "{\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }" { (expression_statement "iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );" (assignment_expression "iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               )" identifier = (call_expression "bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               )" identifier (argument_list "(iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               )" ( identifier , (string_literal "".note.gnu.build-id"" " string_content ") , (string_literal ""t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..."" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (if_statement "if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }" { (expression_statement "*(undefined4 *)(iVar19 + 0x58) = 2;" (assignment_expression "*(undefined4 *)(iVar19 + 0x58) = 2" (pointer_expression "*(undefined4 *)(iVar19 + 0x58)" * (cast_expression "(undefined4 *)(iVar19 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x58)" ( (binary_expression "iVar19 + 0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar6 = DAT_001c4614;" (assignment_expression "puVar6 = DAT_001c4614" identifier = identifier) ;) (expression_statement "iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);" (assignment_expression "iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0)" identifier = (pointer_expression "*(int *)(DAT_001c4614[0x28] + 0x9c0)" * (cast_expression "(int *)(DAT_001c4614[0x28] + 0x9c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001c4614[0x28] + 0x9c0)" ( (binary_expression "DAT_001c4614[0x28] + 0x9c0" (subscript_expression "DAT_001c4614[0x28]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "*(code **)(iVar21 + 0x10) = FUN_0003f390;" (assignment_expression "*(code **)(iVar21 + 0x10) = FUN_0003f390" (pointer_expression "*(code **)(iVar21 + 0x10)" * (cast_expression "(code **)(iVar21 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x10)" ( (binary_expression "iVar21 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pvVar4 = DAT_001c3be4;" (assignment_expression "pvVar4 = DAT_001c3be4" identifier = identifier) ;) (expression_statement "*(int *)(iVar21 + 0x18) = iVar19;" (assignment_expression "*(int *)(iVar21 + 0x18) = iVar19" (pointer_expression "*(int *)(iVar21 + 0x18)" * (cast_expression "(int *)(iVar21 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x18)" ( (binary_expression "iVar21 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(void **)(iVar21 + 0x14) = pvVar4;" (assignment_expression "*(void **)(iVar21 + 0x14) = pvVar4" (pointer_expression "*(void **)(iVar21 + 0x14)" * (cast_expression "(void **)(iVar21 + 0x14)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x14)" ( (binary_expression "iVar21 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;" (assignment_expression "*(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7" (pointer_expression "*(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4)" * (cast_expression "(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0xa4) + 4)" ( (binary_expression "*(int *)(iVar19 + 0xa4) + 4" (pointer_expression "*(int *)(iVar19 + 0xa4)" * (cast_expression "(int *)(iVar19 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xa4)" ( (binary_expression "iVar19 + 0xa4" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;" (assignment_expression "*(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10" (pointer_expression "*(longlong *)(iVar19 + 0x2c)" * (cast_expression "(longlong *)(iVar19 + 0x2c)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x2c)" ( (binary_expression "iVar19 + 0x2c" identifier + number_literal) )))) = (binary_expression "lVar32 + 0x10" identifier + number_literal)) ;) (goto_statement "goto LAB_00040754;" goto statement_identifier ;) })) (expression_statement "pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";" (assignment_expression "pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n"" identifier = (string_literal ""%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n"" " string_content escape_sequence ")) ;) }))) (expression_statement "uVar9 = dcgettext(0,pcVar5,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar5,5)" identifier = (call_expression "dcgettext(0,pcVar5,5)" identifier (argument_list "(0,pcVar5,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_00034dc0(uVar9);" (call_expression "FUN_00034dc0(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) (break_statement "break;" break ;) })) })) (expression_statement "free(DAT_001c3be4);" (call_expression "free(DAT_001c3be4)" identifier (argument_list "(DAT_001c3be4)" ( identifier ))) ;) (expression_statement "DAT_001c3be4 = (void *)0x0;" (assignment_expression "DAT_001c3be4 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar6 = DAT_001c4614;" (assignment_expression "puVar6 = DAT_001c4614" identifier = identifier) ;) })) (labeled_statement "LAB_00040754:\n    (**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);" statement_identifier : (expression_statement "(**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);" (call_expression "(**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0)" (parenthesized_expression "(**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))" ( (pointer_expression "**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0)" * (pointer_expression "*(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0)" * (cast_expression "(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar6[1] + 0x1c0) + 0x1d0)" ( (binary_expression "*(int *)(puVar6[1] + 0x1c0) + 0x1d0" (pointer_expression "*(int *)(puVar6[1] + 0x1c0)" * (cast_expression "(int *)(puVar6[1] + 0x1c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6[1] + 0x1c0)" ( (binary_expression "puVar6[1] + 0x1c0" (subscript_expression "puVar6[1]" identifier [ number_literal ]) + number_literal) )))) + number_literal) ))))) )) (argument_list "(&DAT_001c45e0)" ( (pointer_expression "&DAT_001c45e0" & identifier) ))) ;)) (if_statement "if ((DAT_001c45e0 & 3) == 2) {\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }" if (parenthesized_expression "((DAT_001c45e0 & 3) == 2)" ( (binary_expression "(DAT_001c45e0 & 3) == 2" (parenthesized_expression "(DAT_001c45e0 & 3)" ( (binary_expression "DAT_001c45e0 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }" { (if_statement "if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }" if (parenthesized_expression "(DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1))" ( (binary_expression "DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)" (binary_expression "DAT_001c45e5 >> 7" identifier >> number_literal) == (parenthesized_expression "(~DAT_001c45e6 & 1)" ( (binary_expression "~DAT_001c45e6 & 1" (unary_expression "~DAT_001c45e6" ~ identifier) & number_literal) ))) )) (compound_statement "{\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }" { (expression_statement "bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);" (call_expression "bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8)" identifier (argument_list "(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8)" ( identifier , (string_literal "".note.GNU-stack"" " string_content ") , (binary_expression "DAT_001c45e5 >> 3 & 0x10 | 8" (binary_expression "DAT_001c45e5 >> 3 & 0x10" (binary_expression "DAT_001c45e5 >> 3" identifier >> number_literal) & number_literal) | number_literal) ))) ;) })) }) (else_clause "else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }" else (compound_statement "{\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }" { (if_statement "if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }" if (parenthesized_expression "(((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0))" ( (binary_expression "((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)" (parenthesized_expression "((DAT_001c45e4 & 0x20) == 0)" ( (binary_expression "(DAT_001c45e4 & 0x20) == 0" (parenthesized_expression "(DAT_001c45e4 & 0x20)" ( (binary_expression "DAT_001c45e4 & 0x20" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(DAT_001c461c != 0)" ( (binary_expression "DAT_001c461c != 0" identifier != number_literal) ))) )) (compound_statement "{\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }" { (expression_statement "local_78 = (undefined4 *)0x0;" (assignment_expression "local_78 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) (expression_statement "iVar19 = DAT_001c461c;" (assignment_expression "iVar19 = DAT_001c461c" identifier = identifier) ;) (do_statement "do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);" do (compound_statement "{\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        }" { (while_statement "while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }" while (parenthesized_expression "((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10)" ( (binary_expression "*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10" (pointer_expression "*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24)" * (cast_expression "(byte *)(*(int *)(iVar19 + 0xa4) + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 0xa4) + 0x24)" ( (binary_expression "*(int *)(iVar19 + 0xa4) + 0x24" (pointer_expression "*(int *)(iVar19 + 0xa4)" * (cast_expression "(int *)(iVar19 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0xa4)" ( (binary_expression "iVar19 + 0xa4" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }" { (labeled_statement "LAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);" statement_identifier : (expression_statement "iVar19 = *(int *)(iVar19 + 0x9c);" (assignment_expression "iVar19 = *(int *)(iVar19 + 0x9c)" identifier = (pointer_expression "*(int *)(iVar19 + 0x9c)" * (cast_expression "(int *)(iVar19 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x9c)" ( (binary_expression "iVar19 + 0x9c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar19 == 0) goto LAB_00040fe6;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00040fe6;" goto statement_identifier ;)) })) (expression_statement "puVar6 = *(undefined4 **)(iVar19 + 0x60);" (assignment_expression "puVar6 = *(undefined4 **)(iVar19 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(iVar19 + 0x60)" * (cast_expression "(undefined4 **)(iVar19 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + 0x60)" ( (binary_expression "iVar19 + 0x60" identifier + number_literal) ))))) ;) (if_statement "if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }" if (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" ( (binary_expression "puVar6 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }" { (expression_statement "local_84 = (char *)0x0;" (assignment_expression "local_84 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);" do (compound_statement "{\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            }" { (expression_statement "bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;" (assignment_expression "bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180" identifier = (binary_expression "(undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180" (cast_expression "(undefined *)puVar6[0x15]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[0x15]" identifier [ number_literal ])) < (binary_expression "PTR__bfd_std_section_001c1fd4 + 0x180" identifier + number_literal))) ;) (expression_statement "bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;" (assignment_expression "bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180" identifier = (binary_expression "(undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180" (cast_expression "(undefined *)puVar6[0x15]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[0x15]" identifier [ number_literal ])) == (binary_expression "PTR__bfd_std_section_001c1fd4 + 0x180" identifier + number_literal))) ;) (expression_statement "pcVar5 = local_84;" (assignment_expression "pcVar5 = local_84" identifier = identifier) ;) (if_statement "if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }" if (parenthesized_expression "(!bVar30)" ( (unary_expression "!bVar30" ! identifier) )) (compound_statement "{\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }" { (expression_statement "iVar21 = 0xf;" (assignment_expression "iVar21 = 0xf" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)*puVar6;" (assignment_expression "pbVar17 = (byte *)*puVar6" identifier = (cast_expression "(byte *)*puVar6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (expression_statement "pbVar23 = (byte *)".eh_frame_entry";" (assignment_expression "pbVar23 = (byte *)".eh_frame_entry"" identifier = (cast_expression "(byte *)".eh_frame_entry"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".eh_frame_entry"" " string_content "))) ;) (do_statement "do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);" do (compound_statement "{\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                }" { (if_statement "if (iVar21 == 0) break;" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar21 = iVar21 + -1;" (assignment_expression "iVar21 = iVar21 + -1" identifier = (binary_expression "iVar21 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *pbVar17 < *pbVar23;" (assignment_expression "bVar29 = *pbVar17 < *pbVar23" identifier = (binary_expression "*pbVar17 < *pbVar23" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "bVar30 = *pbVar17 == *pbVar23;" (assignment_expression "bVar30 = *pbVar17 == *pbVar23" identifier = (binary_expression "*pbVar17 == *pbVar23" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar30)" ( identifier )) ;) (expression_statement "bVar28 = false;" (assignment_expression "bVar28 = false" identifier = false) ;) (expression_statement "bVar29 = (!bVar29 && !bVar30) == bVar29;" (assignment_expression "bVar29 = (!bVar29 && !bVar30) == bVar29" identifier = (binary_expression "(!bVar29 && !bVar30) == bVar29" (parenthesized_expression "(!bVar29 && !bVar30)" ( (binary_expression "!bVar29 && !bVar30" (unary_expression "!bVar29" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }" if (parenthesized_expression "(bVar29)" ( identifier )) (compound_statement "{\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }" { (expression_statement "local_84 = (char *)0x2;" (assignment_expression "local_84 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00040f91;" goto statement_identifier ;) })) (expression_statement "iVar21 = 10;" (assignment_expression "iVar21 = 10" identifier = number_literal) ;) (expression_statement "pbVar17 = (byte *)*puVar6;" (assignment_expression "pbVar17 = (byte *)*puVar6" identifier = (cast_expression "(byte *)*puVar6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (expression_statement "pbVar23 = (byte *)".eh_frame";" (assignment_expression "pbVar23 = (byte *)".eh_frame"" identifier = (cast_expression "(byte *)".eh_frame"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".eh_frame"" " string_content "))) ;) (do_statement "do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);" do (compound_statement "{\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                }" { (if_statement "if (iVar21 == 0) break;" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar21 = iVar21 + -1;" (assignment_expression "iVar21 = iVar21 + -1" identifier = (binary_expression "iVar21 + -1" identifier + number_literal)) ;) (expression_statement "bVar28 = *pbVar17 < *pbVar23;" (assignment_expression "bVar28 = *pbVar17 < *pbVar23" identifier = (binary_expression "*pbVar17 < *pbVar23" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "bVar29 = *pbVar17 == *pbVar23;" (assignment_expression "bVar29 = *pbVar17 == *pbVar23" identifier = (binary_expression "*pbVar17 == *pbVar23" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar29)" ( identifier )) ;) (if_statement "if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }" if (parenthesized_expression "(((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc]))" ( (binary_expression "((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])" (parenthesized_expression "((!bVar28 && !bVar29) == bVar28)" ( (binary_expression "(!bVar28 && !bVar29) == bVar28" (parenthesized_expression "(!bVar28 && !bVar29)" ( (binary_expression "!bVar28 && !bVar29" (unary_expression "!bVar28" ! identifier) && (unary_expression "!bVar29" ! identifier)) )) == identifier) )) && (parenthesized_expression "(pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])" ( (comma_expression "pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc]" (assignment_expression "pcVar5 = (char *)1" identifier = (cast_expression "(char *)1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc]" (binary_expression "puVar6[0xc] == 0" (subscript_expression "puVar6[0xc]" identifier [ number_literal ]) == number_literal) && (binary_expression "(uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc]" (call_expression "(uint)(8 < (uint)puVar6[0xb])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(8 < (uint)puVar6[0xb])" ( (binary_expression "8 < (uint)puVar6[0xb]" number_literal < (cast_expression "(uint)puVar6[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar6[0xb]" identifier [ number_literal ]))) ))) <= (binary_expression "(uint)-puVar6[0xc]" (parenthesized_expression "(uint)" ( identifier )) - (subscript_expression "puVar6[0xc]" identifier [ number_literal ]))))) ))) )) (compound_statement "{\n                  pcVar5 = local_84;\n                }" { (expression_statement "pcVar5 = local_84;" (assignment_expression "pcVar5 = local_84" identifier = identifier) ;) })) })) (expression_statement "local_84 = pcVar5;" (assignment_expression "local_84 = pcVar5" identifier = identifier) ;) (expression_statement "puVar6 = (undefined4 *)puVar6[3];" (assignment_expression "puVar6 = (undefined4 *)puVar6[3]" identifier = (cast_expression "(undefined4 *)puVar6[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[3]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" ( (binary_expression "puVar6 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }" if (parenthesized_expression "(local_84 != (char *)0x0)" ( (binary_expression "local_84 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }" { (labeled_statement "LAB_00040f91:\n              pcVar5 = local_84;" statement_identifier : (expression_statement "pcVar5 = local_84;" (assignment_expression "pcVar5 = local_84" identifier = identifier) ;)) (if_statement "if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }" if (parenthesized_expression "((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84))" ( (binary_expression "(local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)" (parenthesized_expression "(local_78 != (undefined4 *)0x0)" ( (binary_expression "local_78 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar5 = (char *)local_78, (char *)local_78 != local_84)" ( (comma_expression "pcVar5 = (char *)local_78, (char *)local_78 != local_84" (assignment_expression "pcVar5 = (char *)local_78" identifier = (cast_expression "(char *)local_78" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "(char *)local_78 != local_84" (cast_expression "(char *)local_78" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != identifier)) ))) )) (compound_statement "{\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }" { (if_statement "if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }" if (parenthesized_expression "(local_84 != (char *)0x1)" ( (binary_expression "local_84 != (char *)0x1" identifier != (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  iVar19 = local_74;\n                }" { (expression_statement "iVar19 = local_74;" (assignment_expression "iVar19 = local_74" identifier = identifier) ;) })) (expression_statement "uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);" (assignment_expression "uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5)" identifier = (call_expression "dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5)" identifier (argument_list "(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5)" ( number_literal , (string_literal ""%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034dc0(uVar9,iVar19);" (call_expression "FUN_00034dc0(uVar9,iVar19)" identifier (argument_list "(uVar9,iVar19)" ( identifier , identifier ))) ;) (break_statement "break;" break ;) })) (expression_statement "local_78 = (undefined4 *)pcVar5;" (assignment_expression "local_78 = (undefined4 *)pcVar5" identifier = (cast_expression "(undefined4 *)pcVar5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }" if (parenthesized_expression "((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5))))" ( (binary_expression "(local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))" (parenthesized_expression "(local_74 == 0)" ( (binary_expression "local_74 == 0" identifier == number_literal) )) && (parenthesized_expression "(((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))" ( (parenthesized_expression "((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5))" ( (binary_expression "(local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)" (parenthesized_expression "(local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0))" ( (binary_expression "local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)" (binary_expression "local_84 == (char *)0x2" identifier == (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "((_DAT_001c45e2 & 0xc000) != 0)" ( (binary_expression "(_DAT_001c45e2 & 0xc000) != 0" (parenthesized_expression "(_DAT_001c45e2 & 0xc000)" ( (binary_expression "_DAT_001c45e2 & 0xc000" identifier & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)" ( (comma_expression "bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5" (assignment_expression "bVar3 = true" identifier = true) , (binary_expression "*(int *)(*(int *)(iVar19 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(iVar19 + 4) + 4)" * (cast_expression "(int *)(*(int *)(iVar19 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar19 + 4) + 4)" ( (binary_expression "*(int *)(iVar19 + 4) + 4" (pointer_expression "*(int *)(iVar19 + 4)" * (cast_expression "(int *)(iVar19 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 4)" ( (binary_expression "iVar19 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal)) ))) )) ))) )) (compound_statement "{\n                local_74 = iVar19;\n              }" { (expression_statement "local_74 = iVar19;" (assignment_expression "local_74 = iVar19" identifier = identifier) ;) })) })) })) (if_statement "if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;" if (parenthesized_expression "(local_78 != (undefined4 *)0x2)" ( (binary_expression "local_78 != (undefined4 *)0x2" identifier != (cast_expression "(undefined4 *)0x2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00040ee8;" goto statement_identifier ;)) (expression_statement "iVar19 = *(int *)(iVar19 + 0x9c);" (assignment_expression "iVar19 = *(int *)(iVar19 + 0x9c)" identifier = (pointer_expression "*(int *)(iVar19 + 0x9c)" * (cast_expression "(int *)(iVar19 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x9c)" ( (binary_expression "iVar19 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "_DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;" (assignment_expression "_DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000" identifier = (binary_expression "_DAT_001c45e2 & 0x3fff | 0x8000" (binary_expression "_DAT_001c45e2 & 0x3fff" identifier & number_literal) | number_literal)) ;) }) while (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) ;) (labeled_statement "LAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }" statement_identifier : (if_statement "if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }" if (parenthesized_expression "((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0))" ( (binary_expression "(local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)" (parenthesized_expression "(local_74 == 0)" ( (binary_expression "local_74 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)" ( (comma_expression "iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0" (assignment_expression "iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8)" identifier = (call_expression "bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8)" identifier (argument_list "(local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8)" ( identifier , (string_literal "".eh_frame_hdr"" " string_content ") , (binary_expression "*(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8" (pointer_expression "*(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30)" * (cast_expression "(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30)" ( (binary_expression "*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30" (pointer_expression "*(int *)(*(int *)(local_74 + 4) + 0x1c0)" * (cast_expression "(int *)(*(int *)(local_74 + 4) + 0x1c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_74 + 4) + 0x1c0)" ( (binary_expression "*(int *)(local_74 + 4) + 0x1c0" (pointer_expression "*(int *)(local_74 + 4)" * (cast_expression "(int *)(local_74 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_74 + 4)" ( (binary_expression "local_74 + 4" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) | number_literal) )))) , (binary_expression "iVar19 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }" { (if_statement "if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }" { (expression_statement "uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);" (assignment_expression "uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5)" identifier = (call_expression "dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5)" identifier (argument_list "(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5)" ( number_literal , (string_literal ""%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034dc0(uVar9);" (call_expression "FUN_00034dc0(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) })) }) (else_clause "else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }" else (compound_statement "{\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }" { (expression_statement "*(undefined4 *)(iVar19 + 0x58) = 2;" (assignment_expression "*(undefined4 *)(iVar19 + 0x58) = 2" (pointer_expression "*(undefined4 *)(iVar19 + 0x58)" * (cast_expression "(undefined4 *)(iVar19 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x58)" ( (binary_expression "iVar19 + 0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(iVar8 + 0xd0) = iVar19;" (assignment_expression "*(int *)(iVar8 + 0xd0) = iVar19" (pointer_expression "*(int *)(iVar8 + 0xd0)" * (cast_expression "(int *)(iVar8 + 0xd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xd0)" ( (binary_expression "iVar8 + 0xd0" identifier + number_literal) )))) = identifier) ;) })))) })) (expression_statement "puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);" (assignment_expression "puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0)" identifier = (cast_expression "(undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0)" identifier (argument_list "(DAT_001c4614,&DAT_001c45e0)" ( identifier , (pointer_expression "&DAT_001c45e0" & identifier) ))))) ;) (expression_statement "local_78 = puVar6;" (assignment_expression "local_78 = puVar6" identifier = identifier) ;) (if_statement "if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }" if (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" ( (binary_expression "puVar6 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }" { (labeled_statement "LAB_000407c0:\n        puVar1 = puVar6;" statement_identifier : (expression_statement "puVar1 = puVar6;" (assignment_expression "puVar1 = puVar6" identifier = identifier) ;)) (if_statement "if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }" if (parenthesized_expression "((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0))))))" ( (binary_expression "(local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))" (parenthesized_expression "(local_78[1] == 0)" ( (binary_expression "local_78[1] == 0" (subscript_expression "local_78[1]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))" ( (parenthesized_expression "(uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0))))" ( (comma_expression "uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))" (assignment_expression "uVar7 = bfd_elf_get_dyn_lib_class(local_78[1])" identifier = (call_expression "bfd_elf_get_dyn_lib_class(local_78[1])" identifier (argument_list "(local_78[1])" ( (subscript_expression "local_78[1]" identifier [ number_literal ]) )))) , (binary_expression "(uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))" (binary_expression "(uVar7 & 1) == 0" (parenthesized_expression "(uVar7 & 1)" ( (binary_expression "uVar7 & 1" identifier & number_literal) )) == number_literal) && (parenthesized_expression "(((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))" ( (parenthesized_expression "((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0))" ( (binary_expression "(local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)" (parenthesized_expression "(local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80))" ( (binary_expression "local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)" (binary_expression "local_78[1] == 0" (subscript_expression "local_78[1]" identifier [ number_literal ]) == number_literal) || (parenthesized_expression "((_DAT_001c45e2 & 0x180) != 0x80)" ( (binary_expression "(_DAT_001c45e2 & 0x180) != 0x80" (parenthesized_expression "(_DAT_001c45e2 & 0x180)" ( (binary_expression "_DAT_001c45e2 & 0x180" identifier & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)" ( (comma_expression "uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0" (assignment_expression "uVar7 = bfd_elf_get_dyn_lib_class(local_78[1])" identifier = (call_expression "bfd_elf_get_dyn_lib_class(local_78[1])" identifier (argument_list "(local_78[1])" ( (subscript_expression "local_78[1]" identifier [ number_literal ]) )))) , (binary_expression "(uVar7 & 4) == 0" (parenthesized_expression "(uVar7 & 4)" ( (binary_expression "uVar7 & 4" identifier & number_literal) )) == number_literal)) ))) )) )))) )) ))) )) (compound_statement "{\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }" { (for_statement "for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }" for ( ; (binary_expression "puVar1 != local_78" identifier != identifier) ; (assignment_expression "puVar1 = (undefined4 *)*puVar1" identifier = (cast_expression "(undefined4 *)*puVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ) (compound_statement "{\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }" { (if_statement "if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }" if (parenthesized_expression "(((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0))" ( (binary_expression "((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)" (parenthesized_expression "((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0))" ( (binary_expression "(puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)" (parenthesized_expression "(puVar1[1] == 0)" ( (binary_expression "puVar1[1] == 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "(uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)" ( (comma_expression "uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0" (assignment_expression "uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1])" identifier = (call_expression "bfd_elf_get_dyn_lib_class(puVar1[1])" identifier (argument_list "(puVar1[1])" ( (subscript_expression "puVar1[1]" identifier [ number_literal ]) )))) , (binary_expression "(uVar7 & 1) == 0" (parenthesized_expression "(uVar7 & 1)" ( (binary_expression "uVar7 & 1" identifier & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "(iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)" ( (comma_expression "iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0" (assignment_expression "iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2])" identifier = (call_expression "strcmp((char *)puVar1[2],(char *)local_78[2])" identifier (argument_list "((char *)puVar1[2],(char *)local_78[2])" ( (cast_expression "(char *)puVar1[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[2]" identifier [ number_literal ])) , (cast_expression "(char *)local_78[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_78[2]" identifier [ number_literal ])) )))) , (binary_expression "iVar8 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }" { (if_statement "if (puVar1 != local_78) goto LAB_00040900;" if (parenthesized_expression "(puVar1 != local_78)" ( (binary_expression "puVar1 != local_78" identifier != identifier) )) (goto_statement "goto LAB_00040900;" goto statement_identifier ;)) (break_statement "break;" break ;) })) })) (expression_statement "DAT_001c3bf8 = 0;" (assignment_expression "DAT_001c3bf8 = 0" identifier = number_literal) ;) (expression_statement "DAT_001c3c60 = local_78;" (assignment_expression "DAT_001c3c60 = local_78" identifier = identifier) ;) (expression_statement "DAT_001c3c64 = FUN_00040150;" (assignment_expression "DAT_001c3c64 = FUN_00040150" identifier = identifier) ;) (expression_statement "FUN_000276c0(FUN_0003d480);" (call_expression "FUN_000276c0(FUN_0003d480)" identifier (argument_list "(FUN_0003d480)" ( identifier ))) ;) (if_statement "if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }" if (parenthesized_expression "((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0))" ( (binary_expression "(DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)" (parenthesized_expression "(DAT_001c3bf8 == 0)" ( (binary_expression "DAT_001c3bf8 == 0" identifier == number_literal) )) || (parenthesized_expression "(uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)" ( (comma_expression "uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0" (assignment_expression "uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10))" identifier = (call_expression "bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10))" identifier (argument_list "(*(undefined4 *)(DAT_001c3bf8 + 0x10))" ( (pointer_expression "*(undefined4 *)(DAT_001c3bf8 + 0x10)" * (cast_expression "(undefined4 *)(DAT_001c3bf8 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001c3bf8 + 0x10)" ( (binary_expression "DAT_001c3bf8 + 0x10" identifier + number_literal) )))) )))) , (binary_expression "(uVar7 & 1) != 0" (parenthesized_expression "(uVar7 & 1)" ( (binary_expression "uVar7 & 1" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }" { (expression_statement "puVar1 = (undefined4 *)local_78[1];" (assignment_expression "puVar1 = (undefined4 *)local_78[1]" identifier = (cast_expression "(undefined4 *)local_78[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_78[1]" identifier [ number_literal ]))) ;) (expression_statement "pcVar5 = (char *)local_78[2];" (assignment_expression "pcVar5 = (char *)local_78[2]" identifier = (cast_expression "(char *)local_78[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_78[2]" identifier [ number_literal ]))) ;) (if_statement "if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }" if (parenthesized_expression "(DAT_001c475c != 0)" ( (binary_expression "DAT_001c475c != 0" identifier != number_literal) )) (compound_statement "{\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }" { (expression_statement "uVar9 = dcgettext(0,"%s needed by %pB\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%s needed by %pB\n",5)" identifier = (call_expression "dcgettext(0,"%s needed by %pB\n",5)" identifier (argument_list "(0,"%s needed by %pB\n",5)" ( number_literal , (string_literal ""%s needed by %pB\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d90(uVar9,pcVar5,puVar1);" (call_expression "FUN_00034d90(uVar9,pcVar5,puVar1)" identifier (argument_list "(uVar9,pcVar5,puVar1)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }" if (parenthesized_expression "((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0))" ( (binary_expression "(DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)" (parenthesized_expression "(DAT_001c3bf8 == 0)" ( (binary_expression "DAT_001c3bf8 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar8 = FUN_00040250(), iVar8 == 0)" ( (comma_expression "iVar8 = FUN_00040250(), iVar8 == 0" (assignment_expression "iVar8 = FUN_00040250()" identifier = (call_expression "FUN_00040250()" identifier (argument_list "()" ( )))) , (binary_expression "iVar8 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }" { (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (do_statement "do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );" do (compound_statement "{\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              }" { (expression_statement "pcVar22 = DAT_001c46c8;" (assignment_expression "pcVar22 = DAT_001c46c8" identifier = identifier) ;) (if_statement "if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }" if (parenthesized_expression "(*pcVar5 == '/')" ( (binary_expression "*pcVar5 == '/'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }" { (expression_statement "iVar8 = FUN_00040250();" (assignment_expression "iVar8 = FUN_00040250()" identifier = (call_expression "FUN_00040250()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar8 != 0) break;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) }) (else_clause "else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }" else (if_statement "if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }" if (parenthesized_expression "((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0'))" ( (binary_expression "(DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')" (parenthesized_expression "(DAT_001c46c8 != (char *)0x0)" ( (binary_expression "DAT_001c46c8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*DAT_001c46c8 != '\0')" ( (binary_expression "*DAT_001c46c8 != '\0'" (pointer_expression "*DAT_001c46c8" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }" { (expression_statement "sVar10 = strlen(pcVar5);" (assignment_expression "sVar10 = strlen(pcVar5)" identifier = (call_expression "strlen(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (do_statement "do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );" do (compound_statement "{\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  }" { (expression_statement "local_68 = strchr(pcVar22,(int)DAT_001c4728);" (assignment_expression "local_68 = strchr(pcVar22,(int)DAT_001c4728)" identifier = (call_expression "strchr(pcVar22,(int)DAT_001c4728)" identifier (argument_list "(pcVar22,(int)DAT_001c4728)" ( identifier , (cast_expression "(int)DAT_001c4728" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (if_statement "if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }" if (parenthesized_expression "(local_68 == (char *)0x0)" ( (binary_expression "local_68 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }" { (expression_statement "sVar25 = strlen(pcVar22);" (assignment_expression "sVar25 = strlen(pcVar22)" identifier = (call_expression "strlen(pcVar22)" identifier (argument_list "(pcVar22)" ( identifier )))) ;) (expression_statement "local_68 = pcVar22 + sVar25;" (assignment_expression "local_68 = pcVar22 + sVar25" identifier = (binary_expression "pcVar22 + sVar25" identifier + identifier)) ;) })) (expression_statement "sVar25 = (int)local_68 - (int)pcVar22;" (assignment_expression "sVar25 = (int)local_68 - (int)pcVar22" identifier = (binary_expression "(int)local_68 - (int)pcVar22" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar22" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);" (assignment_expression "local_84 = (char *)xmalloc(sVar10 + 2 + sVar25)" identifier = (cast_expression "(char *)xmalloc(sVar10 + 2 + sVar25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar10 + 2 + sVar25)" identifier (argument_list "(sVar10 + 2 + sVar25)" ( (binary_expression "sVar10 + 2 + sVar25" (binary_expression "sVar10 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "pcVar16 = local_84;" (assignment_expression "pcVar16 = local_84" identifier = identifier) ;) (if_statement "if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }" if (parenthesized_expression "(pcVar22 != local_68)" ( (binary_expression "pcVar22 != local_68" identifier != identifier) )) (compound_statement "{\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }" { (expression_statement "memcpy(local_84,pcVar22,sVar25);" (call_expression "memcpy(local_84,pcVar22,sVar25)" identifier (argument_list "(local_84,pcVar22,sVar25)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_84[sVar25] = '/';" (assignment_expression "local_84[sVar25] = '/'" (subscript_expression "local_84[sVar25]" identifier [ identifier ]) = (char_literal "'/'" ' character ')) ;) (expression_statement "pcVar16 = local_84 + sVar25 + 1;" (assignment_expression "pcVar16 = local_84 + sVar25 + 1" identifier = (binary_expression "local_84 + sVar25 + 1" (binary_expression "local_84 + sVar25" identifier + identifier) + number_literal)) ;) })) (expression_statement "pcVar22 = (char *)0x0;" (assignment_expression "pcVar22 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "strcpy(pcVar16,pcVar5);" (call_expression "strcpy(pcVar16,pcVar5)" identifier (argument_list "(pcVar16,pcVar5)" ( identifier , identifier ))) ;) (while_statement "while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }" while (parenthesized_expression "(pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0)" ( (comma_expression "pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0" (assignment_expression "pcVar22 = strchr(local_84 + (int)pcVar22,0x24)" identifier = (call_expression "strchr(local_84 + (int)pcVar22,0x24)" identifier (argument_list "(local_84 + (int)pcVar22,0x24)" ( (binary_expression "local_84 + (int)pcVar22" identifier + (cast_expression "(int)pcVar22" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal )))) , (binary_expression "pcVar22 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }" { (expression_statement "pcVar16 = strchr(pcVar22,0x2f);" (assignment_expression "pcVar16 = strchr(pcVar22,0x2f)" identifier = (call_expression "strchr(pcVar22,0x2f)" identifier (argument_list "(pcVar22,0x2f)" ( identifier , number_literal )))) ;) (expression_statement "sVar25 = strlen(local_84);" (assignment_expression "sVar25 = strlen(local_84)" identifier = (call_expression "strlen(local_84)" identifier (argument_list "(local_84)" ( identifier )))) ;) (if_statement "if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }" if (parenthesized_expression "(pcVar16 != (char *)0x0)" ( (binary_expression "pcVar16 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        *pcVar16 = '\0';\n                      }" { (expression_statement "*pcVar16 = '\0';" (assignment_expression "*pcVar16 = '\0'" (pointer_expression "*pcVar16" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "bVar20 = pcVar22[1];" (assignment_expression "bVar20 = pcVar22[1]" identifier = (subscript_expression "pcVar22[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar15 = pcVar22 + 1;" (assignment_expression "pcVar15 = pcVar22 + 1" identifier = (binary_expression "pcVar22 + 1" identifier + number_literal)) ;) (if_statement "if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }" if (parenthesized_expression "(bVar20 == 0x7b)" ( (binary_expression "bVar20 == 0x7b" identifier == number_literal) )) (compound_statement "{\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }" { (expression_statement "bVar20 = pcVar22[2];" (assignment_expression "bVar20 = pcVar22[2]" identifier = (subscript_expression "pcVar22[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar15 = pcVar22 + 2;" (assignment_expression "pcVar15 = pcVar22 + 2" identifier = (binary_expression "pcVar22 + 2" identifier + number_literal)) ;) })) (expression_statement "pbVar17 = (byte *)(pcVar15 + 1);" (assignment_expression "pbVar17 = (byte *)(pcVar15 + 1)" identifier = (cast_expression "(byte *)(pcVar15 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 1)" ( (binary_expression "pcVar15 + 1" identifier + number_literal) )))) ;) (expression_statement "bVar29 = bVar20 < 0x4c;" (assignment_expression "bVar29 = bVar20 < 0x4c" identifier = (binary_expression "bVar20 < 0x4c" identifier < number_literal)) ;) (expression_statement "bVar30 = bVar20 == 0x4c;" (assignment_expression "bVar30 = bVar20 == 0x4c" identifier = (binary_expression "bVar20 == 0x4c" identifier == number_literal)) ;) (if_statement "if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }" if (parenthesized_expression "(bVar30)" ( identifier )) (compound_statement "{\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }" { (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" identifier = number_literal) ;) (expression_statement "pbVar23 = pbVar17;" (assignment_expression "pbVar23 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar26 = (byte *)0x701f6;" (assignment_expression "pbVar26 = (byte *)0x701f6" identifier = (cast_expression "(byte *)0x701f6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);" do (compound_statement "{\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *pbVar23 < *pbVar26;" (assignment_expression "bVar29 = *pbVar23 < *pbVar26" identifier = (binary_expression "*pbVar23 < *pbVar26" (pointer_expression "*pbVar23" * identifier) < (pointer_expression "*pbVar26" * identifier))) ;) (expression_statement "bVar30 = *pbVar23 == *pbVar26;" (assignment_expression "bVar30 = *pbVar23 == *pbVar26" identifier = (binary_expression "*pbVar23 == *pbVar26" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*pbVar26" * identifier))) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar26 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar26 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar30)" ( identifier )) ;) (expression_statement "bVar28 = false;" (assignment_expression "bVar28 = false" identifier = false) ;) (expression_statement "bVar29 = (!bVar29 && !bVar30) == bVar29;" (assignment_expression "bVar29 = (!bVar29 && !bVar30) == bVar29" identifier = (binary_expression "(!bVar29 && !bVar30) == bVar29" (parenthesized_expression "(!bVar29 && !bVar30)" ( (binary_expression "!bVar29 && !bVar30" (unary_expression "!bVar29" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }" if (parenthesized_expression "(!bVar29)" ( (unary_expression "!bVar29" ! identifier) )) (compound_statement "{\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }" { (expression_statement "iVar8 = 4;" (assignment_expression "iVar8 = 4" identifier = number_literal) ;) (expression_statement "pbVar23 = &DAT_000af890;" (assignment_expression "pbVar23 = &DAT_000af890" identifier = (pointer_expression "&DAT_000af890" & identifier)) ;) (do_statement "do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);" do (compound_statement "{\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar28 = *pbVar17 < *pbVar23;" (assignment_expression "bVar28 = *pbVar17 < *pbVar23" identifier = (binary_expression "*pbVar17 < *pbVar23" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "bVar29 = *pbVar17 == *pbVar23;" (assignment_expression "bVar29 = *pbVar17 == *pbVar23" identifier = (binary_expression "*pbVar17 == *pbVar23" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar29)" ( identifier )) ;) (if_statement "if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;" if (parenthesized_expression "((!bVar28 && !bVar29) != bVar28)" ( (binary_expression "(!bVar28 && !bVar29) != bVar28" (parenthesized_expression "(!bVar28 && !bVar29)" ( (binary_expression "!bVar28 && !bVar29" (unary_expression "!bVar28" ! identifier) && (unary_expression "!bVar29" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00040c47;" goto statement_identifier ;)) })) (expression_statement "sVar13 = 5;" (assignment_expression "sVar13 = 5" identifier = number_literal) ;) (expression_statement "pcVar27 = (char *)0x0;" (assignment_expression "pcVar27 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar15 = "lib64";" (assignment_expression "pcVar15 = "lib64"" identifier = (string_literal ""lib64"" " string_content ")) ;) (labeled_statement "LAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);" statement_identifier : (expression_statement "pcVar12 = (char *)xmalloc(sVar13 + sVar25);" (assignment_expression "pcVar12 = (char *)xmalloc(sVar13 + sVar25)" identifier = (cast_expression "(char *)xmalloc(sVar13 + sVar25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar13 + sVar25)" identifier (argument_list "(sVar13 + sVar25)" ( (binary_expression "sVar13 + sVar25" identifier + identifier) ))))) ;)) (expression_statement "iVar8 = (int)pcVar22 - (int)local_84;" (assignment_expression "iVar8 = (int)pcVar22 - (int)local_84" identifier = (binary_expression "(int)pcVar22 - (int)local_84" (cast_expression "(int)pcVar22" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }" if (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }" { (expression_statement "sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);" (call_expression "sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15)" identifier (argument_list "(pcVar12,"%.*s%s",iVar8,local_84,pcVar15)" ( identifier , (string_literal ""%.*s%s"" " string_content ") , identifier , identifier , identifier ))) ;) (expression_statement "sVar25 = strlen(pcVar15);" (assignment_expression "sVar25 = strlen(pcVar15)" identifier = (call_expression "strlen(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier )))) ;) (expression_statement "pcVar22 = (char *)(iVar8 + sVar25);" (assignment_expression "pcVar22 = (char *)(iVar8 + sVar25)" identifier = (cast_expression "(char *)(iVar8 + sVar25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + sVar25)" ( (binary_expression "iVar8 + sVar25" identifier + identifier) )))) ;) }) (else_clause "else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }" else (compound_statement "{\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }" { (expression_statement "sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);" (call_expression "sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1)" identifier (argument_list "(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1)" ( identifier , (string_literal ""%.*s%s/%s"" " string_content ") , identifier , identifier , identifier , (binary_expression "pcVar16 + 1" identifier + number_literal) ))) ;) (expression_statement "sVar25 = strlen(pcVar15);" (assignment_expression "sVar25 = strlen(pcVar15)" identifier = (call_expression "strlen(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier )))) ;) (expression_statement "pcVar22 = (char *)(iVar8 + 1 + sVar25);" (assignment_expression "pcVar22 = (char *)(iVar8 + 1 + sVar25)" identifier = (cast_expression "(char *)(iVar8 + 1 + sVar25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 1 + sVar25)" ( (binary_expression "iVar8 + 1 + sVar25" (binary_expression "iVar8 + 1" identifier + number_literal) + identifier) )))) ;) }))) (expression_statement "free(local_84);" (call_expression "free(local_84)" identifier (argument_list "(local_84)" ( identifier ))) ;) (expression_statement "local_84 = pcVar12;" (assignment_expression "local_84 = pcVar12" identifier = identifier) ;) }) (else_clause "else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }" else (compound_statement "{\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }" { (expression_statement "bVar29 = bVar20 < 0x4f;" (assignment_expression "bVar29 = bVar20 < 0x4f" identifier = (binary_expression "bVar20 < 0x4f" identifier < number_literal)) ;) (expression_statement "bVar30 = bVar20 == 0x4f;" (assignment_expression "bVar30 = bVar20 == 0x4f" identifier = (binary_expression "bVar20 == 0x4f" identifier == number_literal)) ;) (if_statement "if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }" if (parenthesized_expression "(bVar30)" ( identifier )) (compound_statement "{\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }" { (expression_statement "iVar8 = 6;" (assignment_expression "iVar8 = 6" identifier = number_literal) ;) (expression_statement "pbVar23 = pbVar17;" (assignment_expression "pbVar23 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar26 = (byte *)0x704cc;" (assignment_expression "pbVar26 = (byte *)0x704cc" identifier = (cast_expression "(byte *)0x704cc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);" do (compound_statement "{\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar29 = *pbVar23 < *pbVar26;" (assignment_expression "bVar29 = *pbVar23 < *pbVar26" identifier = (binary_expression "*pbVar23 < *pbVar26" (pointer_expression "*pbVar23" * identifier) < (pointer_expression "*pbVar26" * identifier))) ;) (expression_statement "bVar30 = *pbVar23 == *pbVar26;" (assignment_expression "bVar30 = *pbVar23 == *pbVar26" identifier = (binary_expression "*pbVar23 == *pbVar26" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*pbVar26" * identifier))) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar26 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar26 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar30)" ( identifier )) ;) (expression_statement "bVar28 = false;" (assignment_expression "bVar28 = false" identifier = false) ;) (expression_statement "bVar29 = (!bVar29 && !bVar30) == bVar29;" (assignment_expression "bVar29 = (!bVar29 && !bVar30) == bVar29" identifier = (binary_expression "(!bVar29 && !bVar30) == bVar29" (parenthesized_expression "(!bVar29 && !bVar30)" ( (binary_expression "!bVar29 && !bVar30" (unary_expression "!bVar29" ! identifier) && (unary_expression "!bVar30" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }" if (parenthesized_expression "(!bVar29)" ( (unary_expression "!bVar29" ! identifier) )) (compound_statement "{\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }" { (expression_statement "iVar8 = 7;" (assignment_expression "iVar8 = 7" identifier = number_literal) ;) (expression_statement "pbVar23 = (byte *)"RIGIN}";" (assignment_expression "pbVar23 = (byte *)"RIGIN}"" identifier = (cast_expression "(byte *)"RIGIN}"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""RIGIN}"" " string_content "))) ;) (do_statement "do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);" do (compound_statement "{\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar28 = *pbVar17 < *pbVar23;" (assignment_expression "bVar28 = *pbVar17 < *pbVar23" identifier = (binary_expression "*pbVar17 < *pbVar23" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "bVar29 = *pbVar17 == *pbVar23;" (assignment_expression "bVar29 = *pbVar17 == *pbVar23" identifier = (binary_expression "*pbVar17 == *pbVar23" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar23" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1" identifier = (binary_expression "pbVar23 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar31 * -2" identifier + (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar29)" ( identifier )) ;) (if_statement "if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;" if (parenthesized_expression "((!bVar28 && !bVar29) != bVar28)" ( (binary_expression "(!bVar28 && !bVar29) != bVar28" (parenthesized_expression "(!bVar28 && !bVar29)" ( (binary_expression "!bVar28 && !bVar29" (unary_expression "!bVar28" ! identifier) && (unary_expression "!bVar29" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00040c47;" goto statement_identifier ;)) })) (expression_statement "puVar11 = puVar1;" (assignment_expression "puVar11 = puVar1" identifier = identifier) ;) (if_statement "if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }" if (parenthesized_expression "(((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0))" ( (binary_expression "((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)" (parenthesized_expression "((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0))" ( (binary_expression "(puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)" (parenthesized_expression "(puVar1 != (undefined4 *)0x0)" ( (binary_expression "puVar1 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)" ( (comma_expression "puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0" (assignment_expression "puVar11 = DAT_001c4614" identifier = identifier) , (binary_expression "DAT_001c4614 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)" ( (comma_expression "pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0" (assignment_expression "pcVar27 = (char *)*puVar11" identifier = (cast_expression "(char *)*puVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar11" * identifier))) , (binary_expression "pcVar27 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }" { (if_statement "if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }" if (parenthesized_expression "(*pcVar27 == '/')" ( (binary_expression "*pcVar27 == '/'" (pointer_expression "*pcVar27" * identifier) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }" { (expression_statement "pcVar15 = (char *)xstrdup(pcVar27);" (assignment_expression "pcVar15 = (char *)xstrdup(pcVar27)" identifier = (cast_expression "(char *)xstrdup(pcVar27)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier ))))) ;) }) (else_clause "else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }" else (compound_statement "{\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }" { (expression_statement "pcVar12 = (char *)getpwd();" (assignment_expression "pcVar12 = (char *)getpwd()" identifier = (cast_expression "(char *)getpwd()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "getpwd()" identifier (argument_list "()" ( ))))) ;) (expression_statement "sVar13 = strlen(pcVar27);" (assignment_expression "sVar13 = strlen(pcVar27)" identifier = (call_expression "strlen(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier )))) ;) (expression_statement "sVar14 = strlen(pcVar12);" (assignment_expression "sVar14 = strlen(pcVar12)" identifier = (call_expression "strlen(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier )))) ;) (expression_statement "pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);" (assignment_expression "pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14)" identifier = (cast_expression "(char *)xmalloc(sVar13 + 2 + sVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar13 + 2 + sVar14)" identifier (argument_list "(sVar13 + 2 + sVar14)" ( (binary_expression "sVar13 + 2 + sVar14" (binary_expression "sVar13 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);" (call_expression "sprintf(pcVar15,"%s/%s",pcVar12,pcVar27)" identifier (argument_list "(pcVar15,"%s/%s",pcVar12,pcVar27)" ( identifier , (string_literal ""%s/%s"" " string_content ") , identifier , identifier ))) ;) }))) (expression_statement "pcVar27 = strrchr(pcVar15,0x2f);" (assignment_expression "pcVar27 = strrchr(pcVar15,0x2f)" identifier = (call_expression "strrchr(pcVar15,0x2f)" identifier (argument_list "(pcVar15,0x2f)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }" if (parenthesized_expression "(pcVar27 != (char *)0x0)" ( (binary_expression "pcVar27 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                              *pcVar27 = '\0';\n                            }" { (expression_statement "*pcVar27 = '\0';" (assignment_expression "*pcVar27 = '\0'" (pointer_expression "*pcVar27" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "sVar13 = strlen(pcVar15);" (assignment_expression "sVar13 = strlen(pcVar15)" identifier = (call_expression "strlen(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier )))) ;) (expression_statement "pcVar27 = pcVar15;" (assignment_expression "pcVar27 = pcVar15" identifier = identifier) ;) (goto_statement "goto LAB_00040b60;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }" statement_identifier : (if_statement "if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }" if (parenthesized_expression "(DAT_001c475c != 0)" ( (binary_expression "DAT_001c475c != 0" identifier != number_literal) )) (compound_statement "{\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }" { (expression_statement "uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);" (assignment_expression "uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5)" identifier = (call_expression "dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5)" identifier (argument_list "(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5)" ( number_literal , (string_literal ""unrecognised or unsupported token \'%s\' in search path\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d90(uVar9,pcVar22);" (call_expression "FUN_00034d90(uVar9,pcVar22)" identifier (argument_list "(uVar9,pcVar22)" ( identifier , identifier ))) ;) }))) (if_statement "if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }" if (parenthesized_expression "(pcVar16 != (char *)0x0)" ( (binary_expression "pcVar16 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          *pcVar16 = '/';\n                        }" { (expression_statement "*pcVar16 = '/';" (assignment_expression "*pcVar16 = '/'" (pointer_expression "*pcVar16" * identifier) = (char_literal "'/'" ' character ')) ;) })) (expression_statement "pcVar27 = (char *)0x0;" (assignment_expression "pcVar27 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar22 = pcVar22 + (1 - (int)local_84);" (assignment_expression "pcVar22 = pcVar22 + (1 - (int)local_84)" identifier = (binary_expression "pcVar22 + (1 - (int)local_84)" identifier + (parenthesized_expression "(1 - (int)local_84)" ( (binary_expression "1 - (int)local_84" number_literal - (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }))) (expression_statement "free(pcVar27);" (call_expression "free(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier ))) ;) })) (expression_statement "iVar8 = FUN_00040250();" (assignment_expression "iVar8 = FUN_00040250()" identifier = (call_expression "FUN_00040250()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar8 != 0) goto LAB_00040900;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00040900;" goto statement_identifier ;)) (expression_statement "free(local_84);" (call_expression "free(local_84)" identifier (argument_list "(local_84)" ( identifier ))) ;) (if_statement "if (*local_68 == '\0') break;" if (parenthesized_expression "(*local_68 == '\0')" ( (binary_expression "*local_68 == '\0'" (pointer_expression "*local_68" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "pcVar22 = local_68 + 1;" (assignment_expression "pcVar22 = local_68 + 1" identifier = (binary_expression "local_68 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))) (expression_statement "sVar10 = strlen((char *)local_78[2]);" (assignment_expression "sVar10 = strlen((char *)local_78[2])" identifier = (call_expression "strlen((char *)local_78[2])" identifier (argument_list "((char *)local_78[2])" ( (cast_expression "(char *)local_78[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_78[2]" identifier [ number_literal ])) )))) ;) (if_statement "if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }" if (parenthesized_expression "(DAT_001c4804 != (int *)0x0)" ( (binary_expression "DAT_001c4804 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }" { (expression_statement "piVar24 = DAT_001c4804;" (assignment_expression "piVar24 = DAT_001c4804" identifier = identifier) ;) (do_statement "do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);" do (compound_statement "{\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  }" { (if_statement "if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }" if (parenthesized_expression "(piVar24[2] == 0)" ( (binary_expression "piVar24[2] == 0" (subscript_expression "piVar24[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }" { (expression_statement "sVar25 = strlen((char *)piVar24[1]);" (assignment_expression "sVar25 = strlen((char *)piVar24[1])" identifier = (call_expression "strlen((char *)piVar24[1])" identifier (argument_list "((char *)piVar24[1])" ( (cast_expression "(char *)piVar24[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[1]" identifier [ number_literal ])) )))) ;) (expression_statement "pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);" (assignment_expression "pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2)" identifier = (cast_expression "(char *)xmalloc(sVar25 + sVar10 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar25 + sVar10 + 2)" identifier (argument_list "(sVar25 + sVar10 + 2)" ( (binary_expression "sVar25 + sVar10 + 2" (binary_expression "sVar25 + sVar10" identifier + identifier) + number_literal) ))))) ;) (expression_statement "sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);" (call_expression "sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2])" identifier (argument_list "(pcVar22,"%s/%s",piVar24[1],local_78[2])" ( identifier , (string_literal ""%s/%s"" " string_content ") , (subscript_expression "piVar24[1]" identifier [ number_literal ]) , (subscript_expression "local_78[2]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar8 = FUN_00040250();" (assignment_expression "iVar8 = FUN_00040250()" identifier = (call_expression "FUN_00040250()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar8 != 0) goto LAB_00040900;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00040900;" goto statement_identifier ;)) (expression_statement "free(pcVar22);" (call_expression "free(pcVar22)" identifier (argument_list "(pcVar22)" ( identifier ))) ;) })) (expression_statement "piVar24 = (int *)*piVar24;" (assignment_expression "piVar24 = (int *)*piVar24" identifier = (cast_expression "(int *)*piVar24" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar24" * identifier))) ;) }) while (parenthesized_expression "(piVar24 != (int *)0x0)" ( (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if (bVar3) goto code_r0x00040e73;" if (parenthesized_expression "(bVar3)" ( identifier )) (goto_statement "goto code_r0x00040e73;" goto statement_identifier ;)) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) })) })) (goto_statement "goto LAB_00040900;" goto statement_identifier ;) })) (labeled_statement "LAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }" statement_identifier : (if_statement "if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }" if (parenthesized_expression "(((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0))" ( (binary_expression "((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)" (parenthesized_expression "((DAT_001c45e3 & 0xc0) == 0x80)" ( (binary_expression "(DAT_001c45e3 & 0xc0) == 0x80" (parenthesized_expression "(DAT_001c45e3 & 0xc0)" ( (binary_expression "DAT_001c45e3 & 0xc0" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)" ( (comma_expression "iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0" (assignment_expression "iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0)" identifier = (call_expression "bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0)" identifier (argument_list "(0,&DAT_001c45e0)" ( number_literal , (pointer_expression "&DAT_001c45e0" & identifier) )))) , (binary_expression "iVar8 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }" { (expression_statement "uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: failed to parse EH frame entries\n",5)" identifier (argument_list "(0,"%F%P: failed to parse EH frame entries\n",5)" ( number_literal , (string_literal ""%F%P: failed to parse EH frame entries\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034dc0(uVar9);" (call_expression "FUN_00034dc0(uVar9)" identifier (argument_list "(uVar9)" ( identifier ))) ;) }))) }))) })) (return_statement "return;" return ;) (labeled_statement "code_r0x00040e73:\n  uVar9 = local_78[1];" statement_identifier : (expression_statement "uVar9 = local_78[1];" (assignment_expression "uVar9 = local_78[1]" identifier = (subscript_expression "local_78[1]" identifier [ number_literal ])) ;)) (expression_statement "uVar2 = local_78[2];" (assignment_expression "uVar2 = local_78[2]" identifier = (subscript_expression "local_78[2]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = dcgettext(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5);" (assignment_expression "uVar18 = dcgettext(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5)" identifier = (call_expression "dcgettext(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5)" identifier (argument_list "(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5)" ( number_literal , (string_literal ""%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034dc0(uVar18,uVar2,uVar9);" (call_expression "FUN_00034dc0(uVar18,uVar2,uVar9)" identifier (argument_list "(uVar18,uVar2,uVar9)" ( identifier , identifier , identifier ))) ;) (labeled_statement "LAB_00040900:\n  local_78 = (undefined4 *)*local_78;" statement_identifier : (expression_statement "local_78 = (undefined4 *)*local_78;" (assignment_expression "local_78 = (undefined4 *)*local_78" identifier = (cast_expression "(undefined4 *)*local_78" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_78" * identifier))) ;)) (if_statement "if (local_78 == (undefined4 *)0x0) goto LAB_00040912;" if (parenthesized_expression "(local_78 == (undefined4 *)0x0)" ( (binary_expression "local_78 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00040912;" goto statement_identifier ;)) (goto_statement "goto LAB_000407c0;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (for_statement for ( ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (break_statement break ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) == (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) & LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (binary_expression (binary_expression (binary_expression IDENT >> LIT) & LIT) | LIT) ))) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (binary_expression IDENT + LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (binary_expression IDENT + LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) , (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) <= (binary_expression (parenthesized_expression ( IDENT )) - (subscript_expression IDENT [ LIT ]))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) != IDENT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = BOOL) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) )))) | LIT) )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ))) )) )))) )) ))) )) (compound_statement { (for_statement for ( ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) }) (else_clause else (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 * IDENT) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (char_literal ' character ')) ;) (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 *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) , LIT )))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , IDENT , 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , IDENT , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT + LIT) + 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 ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT + IDENT) + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto 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))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) }) while (parenthesized_expression ( BOOL )) ;) })) })) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) }))) })) (return_statement return ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "void FUN_00040580(void)\n\n{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  bool bVar3;\n  void *pvVar4;\n  char *pcVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  size_t sVar10;\n  undefined4 *puVar11;\n  char *pcVar12;\n  size_t sVar13;\n  size_t sVar14;\n  char *pcVar15;\n  char *pcVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  int iVar19;\n  byte bVar20;\n  int iVar21;\n  char *pcVar22;\n  byte *pbVar23;\n  int *piVar24;\n  size_t sVar25;\n  byte *pbVar26;\n  char *pcVar27;\n  bool bVar28;\n  bool bVar29;\n  bool bVar30;\n  byte bVar31;\n  longlong lVar32;\n  char *local_84;\n  undefined4 *local_78;\n  int local_74;\n  char *local_68;\n  \n  bVar31 = 0;\n  FUN_000339e0();\n  iVar8 = DAT_001c4600;\n  if (*(int *)(DAT_001c4600 + 0x28) == 1) {\n    if (DAT_001c46a0 != 0) {\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }\n    puVar6 = DAT_001c4614;\n    iVar19 = DAT_001c461c;\n    if (DAT_001c3be4 != (void *)0x0) {\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }\nLAB_00040754:\n    (**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);\n    if ((DAT_001c45e0 & 3) == 2) {\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }\n  }\n  return;\ncode_r0x00040e73:\n  uVar9 = local_78[1];\n  uVar2 = local_78[2];\n  uVar18 = dcgettext(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5);\n  FUN_00034dc0(uVar18,uVar2,uVar9);\nLAB_00040900:\n  local_78 = (undefined4 *)*local_78;\n  if (local_78 == (undefined4 *)0x0) goto LAB_00040912;\n  goto LAB_000407c0;\n}" (primitive_type "void") (function_declarator "FUN_00040580(void)" (identifier "FUN_00040580") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 uVar2;\n  bool bVar3;\n  void *pvVar4;\n  char *pcVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  size_t sVar10;\n  undefined4 *puVar11;\n  char *pcVar12;\n  size_t sVar13;\n  size_t sVar14;\n  char *pcVar15;\n  char *pcVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  int iVar19;\n  byte bVar20;\n  int iVar21;\n  char *pcVar22;\n  byte *pbVar23;\n  int *piVar24;\n  size_t sVar25;\n  byte *pbVar26;\n  char *pcVar27;\n  bool bVar28;\n  bool bVar29;\n  bool bVar30;\n  byte bVar31;\n  longlong lVar32;\n  char *local_84;\n  undefined4 *local_78;\n  int local_74;\n  char *local_68;\n  \n  bVar31 = 0;\n  FUN_000339e0();\n  iVar8 = DAT_001c4600;\n  if (*(int *)(DAT_001c4600 + 0x28) == 1) {\n    if (DAT_001c46a0 != 0) {\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }\n    puVar6 = DAT_001c4614;\n    iVar19 = DAT_001c461c;\n    if (DAT_001c3be4 != (void *)0x0) {\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }\nLAB_00040754:\n    (**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);\n    if ((DAT_001c45e0 & 3) == 2) {\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }\n  }\n  return;\ncode_r0x00040e73:\n  uVar9 = local_78[1];\n  uVar2 = local_78[2];\n  uVar18 = dcgettext(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5);\n  FUN_00034dc0(uVar18,uVar2,uVar9);\nLAB_00040900:\n  local_78 = (undefined4 *)*local_78;\n  if (local_78 == (undefined4 *)0x0) goto LAB_00040912;\n  goto LAB_000407c0;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "void *pvVar4;" (primitive_type "void") (pointer_declarator "*pvVar4" (* "*") (identifier "pvVar4")) (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "size_t sVar10;" (primitive_type "size_t") (identifier "sVar10") (; ";")) (declaration "undefined4 *puVar11;" (type_identifier "undefined4") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "char *pcVar12;" (primitive_type "char") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "size_t sVar13;" (primitive_type "size_t") (identifier "sVar13") (; ";")) (declaration "size_t sVar14;" (primitive_type "size_t") (identifier "sVar14") (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "char *pcVar16;" (primitive_type "char") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "undefined4 uVar18;" (type_identifier "undefined4") (identifier "uVar18") (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "byte bVar20;" (type_identifier "byte") (identifier "bVar20") (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "char *pcVar22;" (primitive_type "char") (pointer_declarator "*pcVar22" (* "*") (identifier "pcVar22")) (; ";")) (declaration "byte *pbVar23;" (type_identifier "byte") (pointer_declarator "*pbVar23" (* "*") (identifier "pbVar23")) (; ";")) (declaration "int *piVar24;" (primitive_type "int") (pointer_declarator "*piVar24" (* "*") (identifier "piVar24")) (; ";")) (declaration "size_t sVar25;" (primitive_type "size_t") (identifier "sVar25") (; ";")) (declaration "byte *pbVar26;" (type_identifier "byte") (pointer_declarator "*pbVar26" (* "*") (identifier "pbVar26")) (; ";")) (declaration "char *pcVar27;" (primitive_type "char") (pointer_declarator "*pcVar27" (* "*") (identifier "pcVar27")) (; ";")) (declaration "bool bVar28;" (primitive_type "bool") (identifier "bVar28") (; ";")) (declaration "bool bVar29;" (primitive_type "bool") (identifier "bVar29") (; ";")) (declaration "bool bVar30;" (primitive_type "bool") (identifier "bVar30") (; ";")) (declaration "byte bVar31;" (type_identifier "byte") (identifier "bVar31") (; ";")) (declaration "longlong lVar32;" (type_identifier "longlong") (identifier "lVar32") (; ";")) (declaration "char *local_84;" (primitive_type "char") (pointer_declarator "*local_84" (* "*") (identifier "local_84")) (; ";")) (declaration "undefined4 *local_78;" (type_identifier "undefined4") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "int local_74;" (primitive_type "int") (identifier "local_74") (; ";")) (declaration "char *local_68;" (primitive_type "char") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (expression_statement "bVar31 = 0;" (assignment_expression "bVar31 = 0" (identifier "bVar31") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_000339e0();" (call_expression "FUN_000339e0()" (identifier "FUN_000339e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar8 = DAT_001c4600;" (assignment_expression "iVar8 = DAT_001c4600" (identifier "iVar8") (= "=") (identifier "DAT_001c4600")) (; ";")) (if_statement "if (*(int *)(DAT_001c4600 + 0x28) == 1) {\n    if (DAT_001c46a0 != 0) {\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }\n    puVar6 = DAT_001c4614;\n    iVar19 = DAT_001c461c;\n    if (DAT_001c3be4 != (void *)0x0) {\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }\nLAB_00040754:\n    (**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);\n    if ((DAT_001c45e0 & 3) == 2) {\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)(DAT_001c4600 + 0x28) == 1)" (( "(") (binary_expression "*(int *)(DAT_001c4600 + 0x28) == 1" (pointer_expression "*(int *)(DAT_001c4600 + 0x28)" (* "*") (cast_expression "(int *)(DAT_001c4600 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001c4600 + 0x28)" (( "(") (binary_expression "DAT_001c4600 + 0x28" (identifier "DAT_001c4600") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    if (DAT_001c46a0 != 0) {\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }\n    puVar6 = DAT_001c4614;\n    iVar19 = DAT_001c461c;\n    if (DAT_001c3be4 != (void *)0x0) {\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }\nLAB_00040754:\n    (**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);\n    if ((DAT_001c45e0 & 3) == 2) {\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }\n  }" ({ "{") (if_statement "if (DAT_001c46a0 != 0) {\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }" (if "if") (parenthesized_expression "(DAT_001c46a0 != 0)" (( "(") (binary_expression "DAT_001c46a0 != 0" (identifier "DAT_001c46a0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      unlink_if_ordinary(DAT_001c46a0);\n      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);\n      iVar19 = DAT_001c46a0;\n      if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }\n    }" ({ "{") (expression_statement "unlink_if_ordinary(DAT_001c46a0);" (call_expression "unlink_if_ordinary(DAT_001c46a0)" (identifier "unlink_if_ordinary") (argument_list "(DAT_001c46a0)" (( "(") (identifier "DAT_001c46a0") () ")"))) (; ";")) (expression_statement "DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);" (assignment_expression "DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1])" (identifier "DAT_001c4618") (= "=") (call_expression "bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1])" (identifier "bfd_openw") (argument_list "(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1])" (( "(") (identifier "DAT_001c46a0") (, ",") (pointer_expression "*(undefined4 *)DAT_001c4614[1]" (* "*") (cast_expression "(undefined4 *)DAT_001c4614[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_001c4614[1]" (identifier "DAT_001c4614") ([ "[") (number_literal "1") (] "]")))) () ")")))) (; ";")) (expression_statement "iVar19 = DAT_001c46a0;" (assignment_expression "iVar19 = DAT_001c46a0" (identifier "iVar19") (= "=") (identifier "DAT_001c46a0")) (; ";")) (if_statement "if (DAT_001c4618 == 0) {\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }" (if "if") (parenthesized_expression "(DAT_001c4618 == 0)" (( "(") (binary_expression "DAT_001c4618 == 0" (identifier "DAT_001c4618") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);\n        FUN_00034dc0(uVar9,iVar19);\n      }" ({ "{") (expression_statement "uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: %s: can\'t open for writing: %E\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: %s: can\'t open for writing: %E\n"" (" """) (string_content "%F%P: %s: can") (escape_sequence "\'") (string_content "t open for writing: %E") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034dc0(uVar9,iVar19);" (call_expression "FUN_00034dc0(uVar9,iVar19)" (identifier "FUN_00034dc0") (argument_list "(uVar9,iVar19)" (( "(") (identifier "uVar9") (, ",") (identifier "iVar19") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "puVar6 = DAT_001c4614;" (assignment_expression "puVar6 = DAT_001c4614" (identifier "puVar6") (= "=") (identifier "DAT_001c4614")) (; ";")) (expression_statement "iVar19 = DAT_001c461c;" (assignment_expression "iVar19 = DAT_001c461c" (identifier "iVar19") (= "=") (identifier "DAT_001c461c")) (; ";")) (if_statement "if (DAT_001c3be4 != (void *)0x0) {\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }" (if "if") (parenthesized_expression "(DAT_001c3be4 != (void *)0x0)" (( "(") (binary_expression "DAT_001c3be4 != (void *)0x0" (identifier "DAT_001c3be4") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }\n      free(DAT_001c3be4);\n      DAT_001c3be4 = (void *)0x0;\n      puVar6 = DAT_001c4614;\n    }" ({ "{") (for_statement "for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }" (for "for") (( "(") (; ";") (binary_expression "iVar19 != 0" (identifier "iVar19") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar19 = *(int *)(iVar19 + 0x9c)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(iVar19 + 0x9c)" (* "*") (cast_expression "(int *)(iVar19 + 0x9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x9c)" (( "(") (binary_expression "iVar19 + 0x9c" (identifier "iVar19") (+ "+") (number_literal "0x9c")) () ")"))))) () ")") (compound_statement "{\n        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }\n      }" ({ "{") (if_statement "if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }" (if "if") (parenthesized_expression "(((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0))" (( "(") (binary_expression "((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&\n           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)" (parenthesized_expression "((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0))" (( "(") (binary_expression "(*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)" (parenthesized_expression "(*(int *)(*(int *)(iVar19 + 4) + 4) == 5)" (( "(") (binary_expression "*(int *)(*(int *)(iVar19 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(iVar19 + 4) + 4)" (* "*") (cast_expression "(int *)(*(int *)(iVar19 + 4) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar19 + 4) + 4)" (( "(") (binary_expression "*(int *)(iVar19 + 4) + 4" (pointer_expression "*(int *)(iVar19 + 4)" (* "*") (cast_expression "(int *)(iVar19 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 4)" (( "(") (binary_expression "iVar19 + 4" (identifier "iVar19") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "5")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar19 + 0x68) != 0)" (( "(") (binary_expression "*(int *)(iVar19 + 0x68) != 0" (pointer_expression "*(int *)(iVar19 + 0x68)" (* "*") (cast_expression "(int *)(iVar19 + 0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x68)" (( "(") (binary_expression "iVar19 + 0x68" (identifier "iVar19") (+ "+") (number_literal "0x68")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10)" (( "(") (binary_expression "*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10" (pointer_expression "*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24)" (* "*") (cast_expression "(byte *)(*(int *)(iVar19 + 0xa4) + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar19 + 0xa4) + 0x24)" (( "(") (binary_expression "*(int *)(iVar19 + 0xa4) + 0x24" (pointer_expression "*(int *)(iVar19 + 0xa4)" (* "*") (cast_expression "(int *)(iVar19 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0xa4)" (( "(") (binary_expression "iVar19 + 0xa4" (identifier "iVar19") (+ "+") (number_literal "0xa4")) () ")")))) (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          lVar32 = FUN_00038a90(DAT_001c3be4);\n          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }\n          uVar9 = dcgettext(0,pcVar5,5);\n          FUN_00034dc0(uVar9);\n          break;\n        }" ({ "{") (expression_statement "lVar32 = FUN_00038a90(DAT_001c3be4);" (assignment_expression "lVar32 = FUN_00038a90(DAT_001c3be4)" (identifier "lVar32") (= "=") (call_expression "FUN_00038a90(DAT_001c3be4)" (identifier "FUN_00038a90") (argument_list "(DAT_001c3be4)" (( "(") (identifier "DAT_001c3be4") () ")")))) (; ";")) (if_statement "if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }\n          else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }" (if "if") (parenthesized_expression "((lVar32 == 0) || (lVar32 + 0x10 == 0))" (( "(") (binary_expression "(lVar32 == 0) || (lVar32 + 0x10 == 0)" (parenthesized_expression "(lVar32 == 0)" (( "(") (binary_expression "lVar32 == 0" (identifier "lVar32") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(lVar32 + 0x10 == 0)" (( "(") (binary_expression "lVar32 + 0x10 == 0" (binary_expression "lVar32 + 0x10" (identifier "lVar32") (+ "+") (number_literal "0x10")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";\n          }" ({ "{") (expression_statement "pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";" (assignment_expression "pcVar5 = "%P: warning: unrecognized --build-id style ignored\n"" (identifier "pcVar5") (= "=") (string_literal ""%P: warning: unrecognized --build-id style ignored\n"" (" """) (string_content "%P: warning: unrecognized --build-id style ignored") (escape_sequence "\n") (" """))) (; ";")) (} "}")) (else_clause "else {\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }" (else "else") (compound_statement "{\n            iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );\n            if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }\n            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";\n          }" ({ "{") (expression_statement "iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               );" (assignment_expression "iVar19 = bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               )" (identifier "iVar19") (= "=") (call_expression "bfd_make_section_with_flags\n                               (iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               )" (identifier "bfd_make_section_with_flags") (argument_list "(iVar19,".note.gnu.build-id",\n                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." \n                               )" (( "(") (identifier "iVar19") (, ",") (string_literal "".note.gnu.build-id"" (" """) (string_content ".note.gnu.build-id") (" """)) (, ",") (string_literal ""t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    \n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  \n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..."" (" """) (string_content "t.*) }") (escape_sequence "\n") (string_content "  .rela.fini      : { *(.rela.fini) }") (escape_sequence "\n") (string_content "  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }") (escape_sequence "\n") (string_content "  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }") (escape_sequence "\n") (string_content "  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }") (escape_sequence "\n") (string_content "  .rela.tdata") (escape_sequence "\t") (string_content "  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }") (escape_sequence "\n") (string_content "  .rela.tbss") (escape_sequence "\t") (string_content "  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }") (escape_sequence "\n") (string_content "  .rela.ctors     : { *(.rela.ctors) }") (escape_sequence "\n") (string_content "  .rela.dtors     : { *(.rela.dtors) }") (escape_sequence "\n") (string_content "  .rela.got       : { *(.rela.got) }") (escape_sequence "\n") (string_content "  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }") (escape_sequence "\n") (string_content "  .rela.ifunc     : { *(.rela.ifunc) }") (escape_sequence "\n") (string_content "  .rela.plt       :") (escape_sequence "\n") (string_content "    {") (escape_sequence "\n") (string_content "      *(.rela.plt)") (escape_sequence "\n") (string_content "      PROVIDE_HIDDEN (__rela_iplt_start = .);") (escape_sequence "\n") (string_content "      *(.rela.iplt)") (escape_sequence "\n") (string_content "      PROVIDE_HIDDEN (__rela_iplt_end = .);") (escape_sequence "\n") (string_content "    }") (escape_sequence "\n") (string_content "  . = ALIGN(CONSTANT (MAXPAGESIZE));") (escape_sequence "\n") (string_content "  .init           :") (escape_sequence "\n") (string_content "  {") (escape_sequence "\n") (string_content "    KEEP (*(SORT_NONE(.init)))") (escape_sequence "\n") (string_content "  } =0x1f2003d5") (escape_sequence "\n") (string_content "  .plt            : ALIGN(16) { *(.plt) *(.iplt) }") (escape_sequence "\n") (string_content "  .text           :") (escape_sequence "\n") (string_content "  {") (escape_sequence "\n") (string_content "    *(.text.unlikely .text.*_unlikely .text.unlikely.*)") (escape_sequence "\n") (string_content "    *(.text.exit .text.exit.*)") (escape_sequence "\n") (string_content "    *(.text.startup .text.startup.*)") (escape_sequence "\n") (string_content "    *(.text.hot .text.hot.*)") (escape_sequence "\n") (string_content "    *(.text .stub .text.* .gnu.linkonce.t.*)") (escape_sequence "\n") (string_content "    ") (escape_sequence "\n") (string_content "    *(.gnu.warning)") (escape_sequence "\n") (string_content "  } =0x1f2003d5") (escape_sequence "\n") (string_content "  .fini           :") (escape_sequence "\n") (string_content "  {") (escape_sequence "\n") (string_content "    KEEP (*(SORT_NONE(.fini)))") (escape_sequence "\n") (string_content "  } =0x1f2003d5") (escape_sequence "\n") (string_content "  PROVIDE (__etext = .);") (escape_sequence "\n") (string_content "  PROVIDE (_etext = .);") (escape_sequence "\n") (string_content "  PROVIDE (etext = .);") (escape_sequence "\n") (string_content "  . = ALIGN(CONSTANT (MAXPAGESIZE));") (escape_sequence "\n") (string_content "  ") (escape_sequence "\n") (string_content "  . = SEGMENT_START(") (escape_sequence "\"") (string_content "rodata-segment") (escape_sequence "\"") (string_content ", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));") (escape_sequence "\n") (string_content "  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }") (escape_sequence "\n") (string_content "  .rodata1        : { *(.rodata1) }") (escape_sequence "\n") (string_content "  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }") (escape_sequence "\n") (string_content "  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }") (escape_sequence "\n") (string_content "  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table") (escape_sequence "\n") (string_content "  .gcc_e...") (" """)) () ")")))) (; ";")) (if_statement "if (iVar19 != 0) {\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }" (if "if") (parenthesized_expression "(iVar19 != 0)" (( "(") (binary_expression "iVar19 != 0" (identifier "iVar19") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              *(undefined4 *)(iVar19 + 0x58) = 2;\n              puVar6 = DAT_001c4614;\n              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);\n              *(code **)(iVar21 + 0x10) = FUN_0003f390;\n              pvVar4 = DAT_001c3be4;\n              *(int *)(iVar21 + 0x18) = iVar19;\n              *(void **)(iVar21 + 0x14) = pvVar4;\n              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;\n              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;\n              goto LAB_00040754;\n            }" ({ "{") (expression_statement "*(undefined4 *)(iVar19 + 0x58) = 2;" (assignment_expression "*(undefined4 *)(iVar19 + 0x58) = 2" (pointer_expression "*(undefined4 *)(iVar19 + 0x58)" (* "*") (cast_expression "(undefined4 *)(iVar19 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x58)" (( "(") (binary_expression "iVar19 + 0x58" (identifier "iVar19") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "puVar6 = DAT_001c4614;" (assignment_expression "puVar6 = DAT_001c4614" (identifier "puVar6") (= "=") (identifier "DAT_001c4614")) (; ";")) (expression_statement "iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);" (assignment_expression "iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(DAT_001c4614[0x28] + 0x9c0)" (* "*") (cast_expression "(int *)(DAT_001c4614[0x28] + 0x9c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001c4614[0x28] + 0x9c0)" (( "(") (binary_expression "DAT_001c4614[0x28] + 0x9c0" (subscript_expression "DAT_001c4614[0x28]" (identifier "DAT_001c4614") ([ "[") (number_literal "0x28") (] "]")) (+ "+") (number_literal "0x9c0")) () ")"))))) (; ";")) (expression_statement "*(code **)(iVar21 + 0x10) = FUN_0003f390;" (assignment_expression "*(code **)(iVar21 + 0x10) = FUN_0003f390" (pointer_expression "*(code **)(iVar21 + 0x10)" (* "*") (cast_expression "(code **)(iVar21 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar21 + 0x10)" (( "(") (binary_expression "iVar21 + 0x10" (identifier "iVar21") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "FUN_0003f390")) (; ";")) (expression_statement "pvVar4 = DAT_001c3be4;" (assignment_expression "pvVar4 = DAT_001c3be4" (identifier "pvVar4") (= "=") (identifier "DAT_001c3be4")) (; ";")) (expression_statement "*(int *)(iVar21 + 0x18) = iVar19;" (assignment_expression "*(int *)(iVar21 + 0x18) = iVar19" (pointer_expression "*(int *)(iVar21 + 0x18)" (* "*") (cast_expression "(int *)(iVar21 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x18)" (( "(") (binary_expression "iVar21 + 0x18" (identifier "iVar21") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "iVar19")) (; ";")) (expression_statement "*(void **)(iVar21 + 0x14) = pvVar4;" (assignment_expression "*(void **)(iVar21 + 0x14) = pvVar4" (pointer_expression "*(void **)(iVar21 + 0x14)" (* "*") (cast_expression "(void **)(iVar21 + 0x14)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar21 + 0x14)" (( "(") (binary_expression "iVar21 + 0x14" (identifier "iVar21") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "pvVar4")) (; ";")) (expression_statement "*(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;" (assignment_expression "*(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7" (pointer_expression "*(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar19 + 0xa4) + 4)" (( "(") (binary_expression "*(int *)(iVar19 + 0xa4) + 4" (pointer_expression "*(int *)(iVar19 + 0xa4)" (* "*") (cast_expression "(int *)(iVar19 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0xa4)" (( "(") (binary_expression "iVar19 + 0xa4" (identifier "iVar19") (+ "+") (number_literal "0xa4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "7")) (; ";")) (expression_statement "*(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;" (assignment_expression "*(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10" (pointer_expression "*(longlong *)(iVar19 + 0x2c)" (* "*") (cast_expression "(longlong *)(iVar19 + 0x2c)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x2c)" (( "(") (binary_expression "iVar19 + 0x2c" (identifier "iVar19") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "lVar32 + 0x10" (identifier "lVar32") (+ "+") (number_literal "0x10"))) (; ";")) (goto_statement "goto LAB_00040754;" (goto "goto") (statement_identifier "LAB_00040754") (; ";")) (} "}"))) (expression_statement "pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";" (assignment_expression "pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n"" (identifier "pcVar5") (= "=") (string_literal ""%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n"" (" """) (string_content "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored") (escape_sequence "\n") (" """))) (; ";")) (} "}")))) (expression_statement "uVar9 = dcgettext(0,pcVar5,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar5,5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,pcVar5,5)" (identifier "dcgettext") (argument_list "(0,pcVar5,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar5") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034dc0(uVar9);" (call_expression "FUN_00034dc0(uVar9)" (identifier "FUN_00034dc0") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}"))) (expression_statement "free(DAT_001c3be4);" (call_expression "free(DAT_001c3be4)" (identifier "free") (argument_list "(DAT_001c3be4)" (( "(") (identifier "DAT_001c3be4") () ")"))) (; ";")) (expression_statement "DAT_001c3be4 = (void *)0x0;" (assignment_expression "DAT_001c3be4 = (void *)0x0" (identifier "DAT_001c3be4") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar6 = DAT_001c4614;" (assignment_expression "puVar6 = DAT_001c4614" (identifier "puVar6") (= "=") (identifier "DAT_001c4614")) (; ";")) (} "}"))) (labeled_statement "LAB_00040754:\n    (**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);" (statement_identifier "LAB_00040754") (: ":") (expression_statement "(**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);" (call_expression "(**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0)" (parenthesized_expression "(**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))" (( "(") (pointer_expression "**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0)" (* "*") (pointer_expression "*(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0)" (* "*") (cast_expression "(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar6[1] + 0x1c0) + 0x1d0)" (( "(") (binary_expression "*(int *)(puVar6[1] + 0x1c0) + 0x1d0" (pointer_expression "*(int *)(puVar6[1] + 0x1c0)" (* "*") (cast_expression "(int *)(puVar6[1] + 0x1c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6[1] + 0x1c0)" (( "(") (binary_expression "puVar6[1] + 0x1c0" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x1c0")) () ")")))) (+ "+") (number_literal "0x1d0")) () ")"))))) () ")")) (argument_list "(&DAT_001c45e0)" (( "(") (pointer_expression "&DAT_001c45e0" (& "&") (identifier "DAT_001c45e0")) () ")"))) (; ";"))) (if_statement "if ((DAT_001c45e0 & 3) == 2) {\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }\n    else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }" (if "if") (parenthesized_expression "((DAT_001c45e0 & 3) == 2)" (( "(") (binary_expression "(DAT_001c45e0 & 3) == 2" (parenthesized_expression "(DAT_001c45e0 & 3)" (( "(") (binary_expression "DAT_001c45e0 & 3" (identifier "DAT_001c45e0") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }\n    }" ({ "{") (if_statement "if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }" (if "if") (parenthesized_expression "(DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1))" (( "(") (binary_expression "DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)" (binary_expression "DAT_001c45e5 >> 7" (identifier "DAT_001c45e5") (>> ">>") (number_literal "7")) (== "==") (parenthesized_expression "(~DAT_001c45e6 & 1)" (( "(") (binary_expression "~DAT_001c45e6 & 1" (unary_expression "~DAT_001c45e6" (~ "~") (identifier "DAT_001c45e6")) (& "&") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);\n      }" ({ "{") (expression_statement "bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);" (call_expression "bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8)" (identifier "bfd_make_section_with_flags") (argument_list "(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8)" (( "(") (identifier "DAT_001c461c") (, ",") (string_literal "".note.GNU-stack"" (" """) (string_content ".note.GNU-stack") (" """)) (, ",") (binary_expression "DAT_001c45e5 >> 3 & 0x10 | 8" (binary_expression "DAT_001c45e5 >> 3 & 0x10" (binary_expression "DAT_001c45e5 >> 3" (identifier "DAT_001c45e5") (>> ">>") (number_literal "3")) (& "&") (number_literal "0x10")) (| "|") (number_literal "8")) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }" (else "else") (compound_statement "{\n      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }\n      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);\n      local_78 = puVar6;\n      if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }\nLAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }\n    }" ({ "{") (if_statement "if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }" (if "if") (parenthesized_expression "(((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0))" (( "(") (binary_expression "((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)" (parenthesized_expression "((DAT_001c45e4 & 0x20) == 0)" (( "(") (binary_expression "(DAT_001c45e4 & 0x20) == 0" (parenthesized_expression "(DAT_001c45e4 & 0x20)" (( "(") (binary_expression "DAT_001c45e4 & 0x20" (identifier "DAT_001c45e4") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(DAT_001c461c != 0)" (( "(") (binary_expression "DAT_001c461c != 0" (identifier "DAT_001c461c") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        local_78 = (undefined4 *)0x0;\n        bVar3 = false;\n        local_74 = 0;\n        iVar19 = DAT_001c461c;\n        do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);\nLAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }\n      }" ({ "{") (expression_statement "local_78 = (undefined4 *)0x0;" (assignment_expression "local_78 = (undefined4 *)0x0" (identifier "local_78") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" (identifier "local_74") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar19 = DAT_001c461c;" (assignment_expression "iVar19 = DAT_001c461c" (identifier "iVar19") (= "=") (identifier "DAT_001c461c")) (; ";")) (do_statement "do {\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        } while (iVar19 != 0);" (do "do") (compound_statement "{\n          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }\n          puVar6 = *(undefined4 **)(iVar19 + 0x60);\n          if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }\n          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;\n          iVar19 = *(int *)(iVar19 + 0x9c);\n          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;\n        }" ({ "{") (while_statement "while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }" (while "while") (parenthesized_expression "((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10)" (( "(") (binary_expression "*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10" (pointer_expression "*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24)" (* "*") (cast_expression "(byte *)(*(int *)(iVar19 + 0xa4) + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar19 + 0xa4) + 0x24)" (( "(") (binary_expression "*(int *)(iVar19 + 0xa4) + 0x24" (pointer_expression "*(int *)(iVar19 + 0xa4)" (* "*") (cast_expression "(int *)(iVar19 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0xa4)" (( "(") (binary_expression "iVar19 + 0xa4" (identifier "iVar19") (+ "+") (number_literal "0xa4")) () ")")))) (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);\n            if (iVar19 == 0) goto LAB_00040fe6;\n          }" ({ "{") (labeled_statement "LAB_00040ee8:\n            iVar19 = *(int *)(iVar19 + 0x9c);" (statement_identifier "LAB_00040ee8") (: ":") (expression_statement "iVar19 = *(int *)(iVar19 + 0x9c);" (assignment_expression "iVar19 = *(int *)(iVar19 + 0x9c)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(iVar19 + 0x9c)" (* "*") (cast_expression "(int *)(iVar19 + 0x9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x9c)" (( "(") (binary_expression "iVar19 + 0x9c" (identifier "iVar19") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";"))) (if_statement "if (iVar19 == 0) goto LAB_00040fe6;" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00040fe6;" (goto "goto") (statement_identifier "LAB_00040fe6") (; ";"))) (} "}"))) (expression_statement "puVar6 = *(undefined4 **)(iVar19 + 0x60);" (assignment_expression "puVar6 = *(undefined4 **)(iVar19 + 0x60)" (identifier "puVar6") (= "=") (pointer_expression "*(undefined4 **)(iVar19 + 0x60)" (* "*") (cast_expression "(undefined4 **)(iVar19 + 0x60)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + 0x60)" (( "(") (binary_expression "iVar19 + 0x60" (identifier "iVar19") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (if_statement "if (puVar6 != (undefined4 *)0x0) {\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar6 != (undefined4 *)0x0" (identifier "puVar6") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            local_84 = (char *)0x0;\n            do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);\n            if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }\n          }" ({ "{") (expression_statement "local_84 = (char *)0x0;" (assignment_expression "local_84 = (char *)0x0" (identifier "local_84") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            } while (puVar6 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;\n              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;\n              pcVar5 = local_84;\n              if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }\n              local_84 = pcVar5;\n              puVar6 = (undefined4 *)puVar6[3];\n            }" ({ "{") (expression_statement "bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;" (assignment_expression "bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180" (identifier "bVar29") (= "=") (binary_expression "(undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180" (cast_expression "(undefined *)puVar6[0x15]" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[0x15]" (identifier "puVar6") ([ "[") (number_literal "0x15") (] "]"))) (< "<") (binary_expression "PTR__bfd_std_section_001c1fd4 + 0x180" (identifier "PTR__bfd_std_section_001c1fd4") (+ "+") (number_literal "0x180")))) (; ";")) (expression_statement "bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;" (assignment_expression "bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180" (identifier "bVar30") (= "=") (binary_expression "(undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180" (cast_expression "(undefined *)puVar6[0x15]" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[0x15]" (identifier "puVar6") ([ "[") (number_literal "0x15") (] "]"))) (== "==") (binary_expression "PTR__bfd_std_section_001c1fd4 + 0x180" (identifier "PTR__bfd_std_section_001c1fd4") (+ "+") (number_literal "0x180")))) (; ";")) (expression_statement "pcVar5 = local_84;" (assignment_expression "pcVar5 = local_84" (identifier "pcVar5") (= "=") (identifier "local_84")) (; ";")) (if_statement "if (!bVar30) {\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }" (if "if") (parenthesized_expression "(!bVar30)" (( "(") (unary_expression "!bVar30" (! "!") (identifier "bVar30")) () ")")) (compound_statement "{\n                iVar21 = 0xf;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame_entry";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);\n                bVar28 = false;\n                bVar29 = (!bVar29 && !bVar30) == bVar29;\n                if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }\n                iVar21 = 10;\n                pbVar17 = (byte *)*puVar6;\n                pbVar23 = (byte *)".eh_frame";\n                do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);\n                if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }\n              }" ({ "{") (expression_statement "iVar21 = 0xf;" (assignment_expression "iVar21 = 0xf" (identifier "iVar21") (= "=") (number_literal "0xf")) (; ";")) (expression_statement "pbVar17 = (byte *)*puVar6;" (assignment_expression "pbVar17 = (byte *)*puVar6" (identifier "pbVar17") (= "=") (cast_expression "(byte *)*puVar6" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";")) (expression_statement "pbVar23 = (byte *)".eh_frame_entry";" (assignment_expression "pbVar23 = (byte *)".eh_frame_entry"" (identifier "pbVar23") (= "=") (cast_expression "(byte *)".eh_frame_entry"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".eh_frame_entry"" (" """) (string_content ".eh_frame_entry") (" """)))) (; ";")) (do_statement "do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar30);" (do "do") (compound_statement "{\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar29 = *pbVar17 < *pbVar23;\n                  bVar30 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                }" ({ "{") (if_statement "if (iVar21 == 0) break;" (if "if") (parenthesized_expression "(iVar21 == 0)" (( "(") (binary_expression "iVar21 == 0" (identifier "iVar21") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar21 = iVar21 + -1;" (assignment_expression "iVar21 = iVar21 + -1" (identifier "iVar21") (= "=") (binary_expression "iVar21 + -1" (identifier "iVar21") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar29 = *pbVar17 < *pbVar23;" (assignment_expression "bVar29 = *pbVar17 < *pbVar23" (identifier "bVar29") (= "=") (binary_expression "*pbVar17 < *pbVar23" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")))) (; ";")) (expression_statement "bVar30 = *pbVar17 == *pbVar23;" (assignment_expression "bVar30 = *pbVar17 == *pbVar23" (identifier "bVar30") (= "=") (binary_expression "*pbVar17 == *pbVar23" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar31 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar31")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1" (identifier "pbVar23") (= "=") (binary_expression "pbVar23 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar31 * -2" (identifier "pbVar23") (+ "+") (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar31")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar30)" (( "(") (identifier "bVar30") () ")")) (; ";")) (expression_statement "bVar28 = false;" (assignment_expression "bVar28 = false" (identifier "bVar28") (= "=") (false "false")) (; ";")) (expression_statement "bVar29 = (!bVar29 && !bVar30) == bVar29;" (assignment_expression "bVar29 = (!bVar29 && !bVar30) == bVar29" (identifier "bVar29") (= "=") (binary_expression "(!bVar29 && !bVar30) == bVar29" (parenthesized_expression "(!bVar29 && !bVar30)" (( "(") (binary_expression "!bVar29 && !bVar30" (unary_expression "!bVar29" (! "!") (identifier "bVar29")) (&& "&&") (unary_expression "!bVar30" (! "!") (identifier "bVar30"))) () ")")) (== "==") (identifier "bVar29"))) (; ";")) (if_statement "if (bVar29) {\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }" (if "if") (parenthesized_expression "(bVar29)" (( "(") (identifier "bVar29") () ")")) (compound_statement "{\n                  local_84 = (char *)0x2;\n                  goto LAB_00040f91;\n                }" ({ "{") (expression_statement "local_84 = (char *)0x2;" (assignment_expression "local_84 = (char *)0x2" (identifier "local_84") (= "=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (goto_statement "goto LAB_00040f91;" (goto "goto") (statement_identifier "LAB_00040f91") (; ";")) (} "}"))) (expression_statement "iVar21 = 10;" (assignment_expression "iVar21 = 10" (identifier "iVar21") (= "=") (number_literal "10")) (; ";")) (expression_statement "pbVar17 = (byte *)*puVar6;" (assignment_expression "pbVar17 = (byte *)*puVar6" (identifier "pbVar17") (= "=") (cast_expression "(byte *)*puVar6" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";")) (expression_statement "pbVar23 = (byte *)".eh_frame";" (assignment_expression "pbVar23 = (byte *)".eh_frame"" (identifier "pbVar23") (= "=") (cast_expression "(byte *)".eh_frame"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".eh_frame"" (" """) (string_content ".eh_frame") (" """)))) (; ";")) (do_statement "do {\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                } while (bVar29);" (do "do") (compound_statement "{\n                  if (iVar21 == 0) break;\n                  iVar21 = iVar21 + -1;\n                  bVar28 = *pbVar17 < *pbVar23;\n                  bVar29 = *pbVar17 == *pbVar23;\n                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                }" ({ "{") (if_statement "if (iVar21 == 0) break;" (if "if") (parenthesized_expression "(iVar21 == 0)" (( "(") (binary_expression "iVar21 == 0" (identifier "iVar21") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar21 = iVar21 + -1;" (assignment_expression "iVar21 = iVar21 + -1" (identifier "iVar21") (= "=") (binary_expression "iVar21 + -1" (identifier "iVar21") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar28 = *pbVar17 < *pbVar23;" (assignment_expression "bVar28 = *pbVar17 < *pbVar23" (identifier "bVar28") (= "=") (binary_expression "*pbVar17 < *pbVar23" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")))) (; ";")) (expression_statement "bVar29 = *pbVar17 == *pbVar23;" (assignment_expression "bVar29 = *pbVar17 == *pbVar23" (identifier "bVar29") (= "=") (binary_expression "*pbVar17 == *pbVar23" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar31 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar31")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1" (identifier "pbVar23") (= "=") (binary_expression "pbVar23 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar31 * -2" (identifier "pbVar23") (+ "+") (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar31")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar29)" (( "(") (identifier "bVar29") () ")")) (; ";")) (if_statement "if (((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {\n                  pcVar5 = local_84;\n                }" (if "if") (parenthesized_expression "(((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc]))" (( "(") (binary_expression "((!bVar28 && !bVar29) == bVar28) &&\n                   (pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])" (parenthesized_expression "((!bVar28 && !bVar29) == bVar28)" (( "(") (binary_expression "(!bVar28 && !bVar29) == bVar28" (parenthesized_expression "(!bVar28 && !bVar29)" (( "(") (binary_expression "!bVar28 && !bVar29" (unary_expression "!bVar28" (! "!") (identifier "bVar28")) (&& "&&") (unary_expression "!bVar29" (! "!") (identifier "bVar29"))) () ")")) (== "==") (identifier "bVar28")) () ")")) (&& "&&") (parenthesized_expression "(pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])" (( "(") (comma_expression "pcVar5 = (char *)1,\n                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc]" (assignment_expression "pcVar5 = (char *)1" (identifier "pcVar5") (= "=") (cast_expression "(char *)1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "1"))) (, ",") (binary_expression "puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc]" (binary_expression "puVar6[0xc] == 0" (subscript_expression "puVar6[0xc]" (identifier "puVar6") ([ "[") (number_literal "0xc") (] "]")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "(uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc]" (call_expression "(uint)(8 < (uint)puVar6[0xb])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(8 < (uint)puVar6[0xb])" (( "(") (binary_expression "8 < (uint)puVar6[0xb]" (number_literal "8") (< "<") (cast_expression "(uint)puVar6[0xb]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar6[0xb]" (identifier "puVar6") ([ "[") (number_literal "0xb") (] "]")))) () ")"))) (<= "<=") (binary_expression "(uint)-puVar6[0xc]" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (subscript_expression "puVar6[0xc]" (identifier "puVar6") ([ "[") (number_literal "0xc") (] "]")))))) () ")"))) () ")")) (compound_statement "{\n                  pcVar5 = local_84;\n                }" ({ "{") (expression_statement "pcVar5 = local_84;" (assignment_expression "pcVar5 = local_84" (identifier "pcVar5") (= "=") (identifier "local_84")) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_84 = pcVar5;" (assignment_expression "local_84 = pcVar5" (identifier "local_84") (= "=") (identifier "pcVar5")) (; ";")) (expression_statement "puVar6 = (undefined4 *)puVar6[3];" (assignment_expression "puVar6 = (undefined4 *)puVar6[3]" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)puVar6[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar6 != (undefined4 *)0x0" (identifier "puVar6") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (if_statement "if (local_84 != (char *)0x0) {\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }" (if "if") (parenthesized_expression "(local_84 != (char *)0x0)" (( "(") (binary_expression "local_84 != (char *)0x0" (identifier "local_84") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00040f91:\n              pcVar5 = local_84;\n              if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }\n              local_78 = (undefined4 *)pcVar5;\n              if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }\n            }" ({ "{") (labeled_statement "LAB_00040f91:\n              pcVar5 = local_84;" (statement_identifier "LAB_00040f91") (: ":") (expression_statement "pcVar5 = local_84;" (assignment_expression "pcVar5 = local_84" (identifier "pcVar5") (= "=") (identifier "local_84")) (; ";"))) (if_statement "if ((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }" (if "if") (parenthesized_expression "((local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84))" (( "(") (binary_expression "(local_78 != (undefined4 *)0x0) &&\n                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)" (parenthesized_expression "(local_78 != (undefined4 *)0x0)" (( "(") (binary_expression "local_78 != (undefined4 *)0x0" (identifier "local_78") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar5 = (char *)local_78, (char *)local_78 != local_84)" (( "(") (comma_expression "pcVar5 = (char *)local_78, (char *)local_78 != local_84" (assignment_expression "pcVar5 = (char *)local_78" (identifier "pcVar5") (= "=") (cast_expression "(char *)local_78" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_78"))) (, ",") (binary_expression "(char *)local_78 != local_84" (cast_expression "(char *)local_78" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_78")) (!= "!=") (identifier "local_84"))) () ")"))) () ")")) (compound_statement "{\n                if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }\n                uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);\n                FUN_00034dc0(uVar9,iVar19);\n                break;\n              }" ({ "{") (if_statement "if (local_84 != (char *)0x1) {\n                  iVar19 = local_74;\n                }" (if "if") (parenthesized_expression "(local_84 != (char *)0x1)" (( "(") (binary_expression "local_84 != (char *)0x1" (identifier "local_84") (!= "!=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n                  iVar19 = local_74;\n                }" ({ "{") (expression_statement "iVar19 = local_74;" (assignment_expression "iVar19 = local_74" (identifier "iVar19") (= "=") (identifier "local_74")) (; ";")) (} "}"))) (expression_statement "uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5);" (assignment_expression "uVar9 = dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5)" (identifier "dcgettext") (argument_list "(0,\n                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"\n                                  ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"" (" """) (string_content "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034dc0(uVar9,iVar19);" (call_expression "FUN_00034dc0(uVar9,iVar19)" (identifier "FUN_00034dc0") (argument_list "(uVar9,iVar19)" (( "(") (identifier "uVar9") (, ",") (identifier "iVar19") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "local_78 = (undefined4 *)pcVar5;" (assignment_expression "local_78 = (undefined4 *)pcVar5" (identifier "local_78") (= "=") (cast_expression "(undefined4 *)pcVar5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar5"))) (; ";")) (if_statement "if ((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {\n                local_74 = iVar19;\n              }" (if "if") (parenthesized_expression "((local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5))))" (( "(") (binary_expression "(local_74 == 0) &&\n                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))" (parenthesized_expression "(local_74 == 0)" (( "(") (binary_expression "local_74 == 0" (identifier "local_74") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))" (( "(") (parenthesized_expression "((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5))" (( "(") (binary_expression "(local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&\n                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)" (parenthesized_expression "(local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0))" (( "(") (binary_expression "local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)" (binary_expression "local_84 == (char *)0x2" (identifier "local_84") (== "==") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (|| "||") (parenthesized_expression "((_DAT_001c45e2 & 0xc000) != 0)" (( "(") (binary_expression "(_DAT_001c45e2 & 0xc000) != 0" (parenthesized_expression "(_DAT_001c45e2 & 0xc000)" (( "(") (binary_expression "_DAT_001c45e2 & 0xc000" (identifier "_DAT_001c45e2") (& "&") (number_literal "0xc000")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)" (( "(") (comma_expression "bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (, ",") (binary_expression "*(int *)(*(int *)(iVar19 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(iVar19 + 4) + 4)" (* "*") (cast_expression "(int *)(*(int *)(iVar19 + 4) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar19 + 4) + 4)" (( "(") (binary_expression "*(int *)(iVar19 + 4) + 4" (pointer_expression "*(int *)(iVar19 + 4)" (* "*") (cast_expression "(int *)(iVar19 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 4)" (( "(") (binary_expression "iVar19 + 4" (identifier "iVar19") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "5"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                local_74 = iVar19;\n              }" ({ "{") (expression_statement "local_74 = iVar19;" (assignment_expression "local_74 = iVar19" (identifier "local_74") (= "=") (identifier "iVar19")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (if_statement "if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;" (if "if") (parenthesized_expression "(local_78 != (undefined4 *)0x2)" (( "(") (binary_expression "local_78 != (undefined4 *)0x2" (identifier "local_78") (!= "!=") (cast_expression "(undefined4 *)0x2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (goto_statement "goto LAB_00040ee8;" (goto "goto") (statement_identifier "LAB_00040ee8") (; ";"))) (expression_statement "iVar19 = *(int *)(iVar19 + 0x9c);" (assignment_expression "iVar19 = *(int *)(iVar19 + 0x9c)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(iVar19 + 0x9c)" (* "*") (cast_expression "(int *)(iVar19 + 0x9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x9c)" (( "(") (binary_expression "iVar19 + 0x9c" (identifier "iVar19") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";")) (expression_statement "_DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;" (assignment_expression "_DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000" (identifier "_DAT_001c45e2") (= "=") (binary_expression "_DAT_001c45e2 & 0x3fff | 0x8000" (binary_expression "_DAT_001c45e2 & 0x3fff" (identifier "_DAT_001c45e2") (& "&") (number_literal "0x3fff")) (| "|") (number_literal "0x8000"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar19 != 0)" (( "(") (binary_expression "iVar19 != 0" (identifier "iVar19") (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_00040fe6:\n        if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }" (statement_identifier "LAB_00040fe6") (: ":") (if_statement "if ((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)) {\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }\n        else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }" (if "if") (parenthesized_expression "((local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0))" (( "(") (binary_expression "(local_74 == 0) ||\n           (iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)" (parenthesized_expression "(local_74 == 0)" (( "(") (binary_expression "local_74 == 0" (identifier "local_74") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0)" (( "(") (comma_expression "iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),\n           iVar19 == 0" (assignment_expression "iVar19 = bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8)" (identifier "iVar19") (= "=") (call_expression "bfd_make_section_with_flags\n                               (local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8)" (identifier "bfd_make_section_with_flags") (argument_list "(local_74,".eh_frame_hdr",\n                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8)" (( "(") (identifier "local_74") (, ",") (string_literal "".eh_frame_hdr"" (" """) (string_content ".eh_frame_hdr") (" """)) (, ",") (binary_expression "*(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8" (pointer_expression "*(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30)" (* "*") (cast_expression "(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30)" (( "(") (binary_expression "*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30" (pointer_expression "*(int *)(*(int *)(local_74 + 4) + 0x1c0)" (* "*") (cast_expression "(int *)(*(int *)(local_74 + 4) + 0x1c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_74 + 4) + 0x1c0)" (( "(") (binary_expression "*(int *)(local_74 + 4) + 0x1c0" (pointer_expression "*(int *)(local_74 + 4)" (* "*") (cast_expression "(int *)(local_74 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_74 + 4)" (( "(") (binary_expression "local_74 + 4" (identifier "local_74") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x1c0")) () ")")))) (+ "+") (number_literal "0x30")) () ")")))) (| "|") (number_literal "8")) () ")")))) (, ",") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }\n        }" ({ "{") (if_statement "if (bVar3) {\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (compound_statement "{\n            uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);\n            FUN_00034dc0(uVar9);\n          }" ({ "{") (expression_statement "uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5);" (assignment_expression "uVar9 = dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5)" (identifier "dcgettext") (argument_list "(0,\n                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"\n                              ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"" (" """) (string_content "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034dc0(uVar9);" (call_expression "FUN_00034dc0(uVar9)" (identifier "FUN_00034dc0") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }" (else "else") (compound_statement "{\n          *(undefined4 *)(iVar19 + 0x58) = 2;\n          *(int *)(iVar8 + 0xd0) = iVar19;\n        }" ({ "{") (expression_statement "*(undefined4 *)(iVar19 + 0x58) = 2;" (assignment_expression "*(undefined4 *)(iVar19 + 0x58) = 2" (pointer_expression "*(undefined4 *)(iVar19 + 0x58)" (* "*") (cast_expression "(undefined4 *)(iVar19 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x58)" (( "(") (binary_expression "iVar19 + 0x58" (identifier "iVar19") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(int *)(iVar8 + 0xd0) = iVar19;" (assignment_expression "*(int *)(iVar8 + 0xd0) = iVar19" (pointer_expression "*(int *)(iVar8 + 0xd0)" (* "*") (cast_expression "(int *)(iVar8 + 0xd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0xd0)" (( "(") (binary_expression "iVar8 + 0xd0" (identifier "iVar8") (+ "+") (number_literal "0xd0")) () ")")))) (= "=") (identifier "iVar19")) (; ";")) (} "}"))))) (} "}"))) (expression_statement "puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);" (assignment_expression "puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0)" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0)" (identifier "bfd_elf_get_needed_list") (argument_list "(DAT_001c4614,&DAT_001c45e0)" (( "(") (identifier "DAT_001c4614") (, ",") (pointer_expression "&DAT_001c45e0" (& "&") (identifier "DAT_001c45e0")) () ")"))))) (; ";")) (expression_statement "local_78 = puVar6;" (assignment_expression "local_78 = puVar6" (identifier "local_78") (= "=") (identifier "puVar6")) (; ";")) (if_statement "if (puVar6 != (undefined4 *)0x0) {\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }" (if "if") (parenthesized_expression "(puVar6 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar6 != (undefined4 *)0x0" (identifier "puVar6") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000407c0:\n        puVar1 = puVar6;\n        if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }\n        goto LAB_00040900;\n      }" ({ "{") (labeled_statement "LAB_000407c0:\n        puVar1 = puVar6;" (statement_identifier "LAB_000407c0") (: ":") (expression_statement "puVar1 = puVar6;" (assignment_expression "puVar1 = puVar6" (identifier "puVar1") (= "=") (identifier "puVar6")) (; ";"))) (if_statement "if ((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }" (if "if") (parenthesized_expression "((local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0))))))" (( "(") (binary_expression "(local_78[1] == 0) ||\n           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))" (parenthesized_expression "(local_78[1] == 0)" (( "(") (binary_expression "local_78[1] == 0" (subscript_expression "local_78[1]" (identifier "local_78") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))" (( "(") (parenthesized_expression "(uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0))))" (( "(") (comma_expression "uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))" (assignment_expression "uVar7 = bfd_elf_get_dyn_lib_class(local_78[1])" (identifier "uVar7") (= "=") (call_expression "bfd_elf_get_dyn_lib_class(local_78[1])" (identifier "bfd_elf_get_dyn_lib_class") (argument_list "(local_78[1])" (( "(") (subscript_expression "local_78[1]" (identifier "local_78") ([ "[") (number_literal "1") (] "]")) () ")")))) (, ",") (binary_expression "(uVar7 & 1) == 0 &&\n            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))" (binary_expression "(uVar7 & 1) == 0" (parenthesized_expression "(uVar7 & 1)" (( "(") (binary_expression "uVar7 & 1" (identifier "uVar7") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))" (( "(") (parenthesized_expression "((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0))" (( "(") (binary_expression "(local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)" (parenthesized_expression "(local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80))" (( "(") (binary_expression "local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)" (binary_expression "local_78[1] == 0" (subscript_expression "local_78[1]" (identifier "local_78") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "((_DAT_001c45e2 & 0x180) != 0x80)" (( "(") (binary_expression "(_DAT_001c45e2 & 0x180) != 0x80" (parenthesized_expression "(_DAT_001c45e2 & 0x180)" (( "(") (binary_expression "_DAT_001c45e2 & 0x180" (identifier "_DAT_001c45e2") (& "&") (number_literal "0x180")) () ")")) (!= "!=") (number_literal "0x80")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)" (( "(") (comma_expression "uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0" (assignment_expression "uVar7 = bfd_elf_get_dyn_lib_class(local_78[1])" (identifier "uVar7") (= "=") (call_expression "bfd_elf_get_dyn_lib_class(local_78[1])" (identifier "bfd_elf_get_dyn_lib_class") (argument_list "(local_78[1])" (( "(") (subscript_expression "local_78[1]" (identifier "local_78") ([ "[") (number_literal "1") (] "]")) () ")")))) (, ",") (binary_expression "(uVar7 & 4) == 0" (parenthesized_expression "(uVar7 & 4)" (( "(") (binary_expression "uVar7 & 4" (identifier "uVar7") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }\n          DAT_001c3bf8 = 0;\n          DAT_001c3c60 = local_78;\n          DAT_001c3c64 = FUN_00040150;\n          FUN_000276c0(FUN_0003d480);\n          if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }\n        }" ({ "{") (for_statement "for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }" (for "for") (( "(") (; ";") (binary_expression "puVar1 != local_78" (identifier "puVar1") (!= "!=") (identifier "local_78")) (; ";") (assignment_expression "puVar1 = (undefined4 *)*puVar1" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)*puVar1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")))) () ")") (compound_statement "{\n            if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }\n          }" ({ "{") (if_statement "if (((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }" (if "if") (parenthesized_expression "(((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0))" (( "(") (binary_expression "((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&\n               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)" (parenthesized_expression "((puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0))" (( "(") (binary_expression "(puVar1[1] == 0) ||\n                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)" (parenthesized_expression "(puVar1[1] == 0)" (( "(") (binary_expression "puVar1[1] == 0" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)" (( "(") (comma_expression "uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0" (assignment_expression "uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1])" (identifier "uVar7") (= "=") (call_expression "bfd_elf_get_dyn_lib_class(puVar1[1])" (identifier "bfd_elf_get_dyn_lib_class") (argument_list "(puVar1[1])" (( "(") (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) () ")")))) (, ",") (binary_expression "(uVar7 & 1) == 0" (parenthesized_expression "(uVar7 & 1)" (( "(") (binary_expression "uVar7 & 1" (identifier "uVar7") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)" (( "(") (comma_expression "iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0" (assignment_expression "iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2])" (identifier "iVar8") (= "=") (call_expression "strcmp((char *)puVar1[2],(char *)local_78[2])" (identifier "strcmp") (argument_list "((char *)puVar1[2],(char *)local_78[2])" (( "(") (cast_expression "(char *)puVar1[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]"))) (, ",") (cast_expression "(char *)local_78[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_78[2]" (identifier "local_78") ([ "[") (number_literal "2") (] "]"))) () ")")))) (, ",") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n              if (puVar1 != local_78) goto LAB_00040900;\n              break;\n            }" ({ "{") (if_statement "if (puVar1 != local_78) goto LAB_00040900;" (if "if") (parenthesized_expression "(puVar1 != local_78)" (( "(") (binary_expression "puVar1 != local_78" (identifier "puVar1") (!= "!=") (identifier "local_78")) () ")")) (goto_statement "goto LAB_00040900;" (goto "goto") (statement_identifier "LAB_00040900") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}"))) (expression_statement "DAT_001c3bf8 = 0;" (assignment_expression "DAT_001c3bf8 = 0" (identifier "DAT_001c3bf8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_001c3c60 = local_78;" (assignment_expression "DAT_001c3c60 = local_78" (identifier "DAT_001c3c60") (= "=") (identifier "local_78")) (; ";")) (expression_statement "DAT_001c3c64 = FUN_00040150;" (assignment_expression "DAT_001c3c64 = FUN_00040150" (identifier "DAT_001c3c64") (= "=") (identifier "FUN_00040150")) (; ";")) (expression_statement "FUN_000276c0(FUN_0003d480);" (call_expression "FUN_000276c0(FUN_0003d480)" (identifier "FUN_000276c0") (argument_list "(FUN_0003d480)" (( "(") (identifier "FUN_0003d480") () ")"))) (; ";")) (if_statement "if ((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)) {\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }" (if "if") (parenthesized_expression "((DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0))" (( "(") (binary_expression "(DAT_001c3bf8 == 0) ||\n             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)" (parenthesized_expression "(DAT_001c3bf8 == 0)" (( "(") (binary_expression "DAT_001c3bf8 == 0" (identifier "DAT_001c3bf8") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0)" (( "(") (comma_expression "uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),\n             (uVar7 & 1) != 0" (assignment_expression "uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10))" (identifier "uVar7") (= "=") (call_expression "bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10))" (identifier "bfd_elf_get_dyn_lib_class") (argument_list "(*(undefined4 *)(DAT_001c3bf8 + 0x10))" (( "(") (pointer_expression "*(undefined4 *)(DAT_001c3bf8 + 0x10)" (* "*") (cast_expression "(undefined4 *)(DAT_001c3bf8 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001c3bf8 + 0x10)" (( "(") (binary_expression "DAT_001c3bf8 + 0x10" (identifier "DAT_001c3bf8") (+ "+") (number_literal "0x10")) () ")")))) () ")")))) (, ",") (binary_expression "(uVar7 & 1) != 0" (parenthesized_expression "(uVar7 & 1)" (( "(") (binary_expression "uVar7 & 1" (identifier "uVar7") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n            puVar1 = (undefined4 *)local_78[1];\n            pcVar5 = (char *)local_78[2];\n            if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }\n            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }\n          }" ({ "{") (expression_statement "puVar1 = (undefined4 *)local_78[1];" (assignment_expression "puVar1 = (undefined4 *)local_78[1]" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)local_78[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_78[1]" (identifier "local_78") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "pcVar5 = (char *)local_78[2];" (assignment_expression "pcVar5 = (char *)local_78[2]" (identifier "pcVar5") (= "=") (cast_expression "(char *)local_78[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_78[2]" (identifier "local_78") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (DAT_001c475c != 0) {\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }" (if "if") (parenthesized_expression "(DAT_001c475c != 0)" (( "(") (binary_expression "DAT_001c475c != 0" (identifier "DAT_001c475c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar9 = dcgettext(0,"%s needed by %pB\n",5);\n              FUN_00034d90(uVar9,pcVar5,puVar1);\n            }" ({ "{") (expression_statement "uVar9 = dcgettext(0,"%s needed by %pB\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%s needed by %pB\n",5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,"%s needed by %pB\n",5)" (identifier "dcgettext") (argument_list "(0,"%s needed by %pB\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s needed by %pB\n"" (" """) (string_content "%s needed by %pB") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d90(uVar9,pcVar5,puVar1);" (call_expression "FUN_00034d90(uVar9,pcVar5,puVar1)" (identifier "FUN_00034d90") (argument_list "(uVar9,pcVar5,puVar1)" (( "(") (identifier "uVar9") (, ",") (identifier "pcVar5") (, ",") (identifier "puVar1") () ")"))) (; ";")) (} "}"))) (if_statement "if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }" (if "if") (parenthesized_expression "((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0))" (( "(") (binary_expression "(DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)" (parenthesized_expression "(DAT_001c3bf8 == 0)" (( "(") (binary_expression "DAT_001c3bf8 == 0" (identifier "DAT_001c3bf8") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar8 = FUN_00040250(), iVar8 == 0)" (( "(") (comma_expression "iVar8 = FUN_00040250(), iVar8 == 0" (assignment_expression "iVar8 = FUN_00040250()" (identifier "iVar8") (= "=") (call_expression "FUN_00040250()" (identifier "FUN_00040250") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n              bVar3 = false;\n              do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );\n            }" ({ "{") (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (do_statement "do {\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              } while( true );" (do "do") (compound_statement "{\n                pcVar22 = DAT_001c46c8;\n                if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }\n                sVar10 = strlen((char *)local_78[2]);\n                if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }\n                if (bVar3) goto code_r0x00040e73;\n                bVar3 = true;\n              }" ({ "{") (expression_statement "pcVar22 = DAT_001c46c8;" (assignment_expression "pcVar22 = DAT_001c46c8" (identifier "pcVar22") (= "=") (identifier "DAT_001c46c8")) (; ";")) (if_statement "if (*pcVar5 == '/') {\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }\n                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }" (if "if") (parenthesized_expression "(*pcVar5 == '/')" (( "(") (binary_expression "*pcVar5 == '/'" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\n                  iVar8 = FUN_00040250();\n                  if (iVar8 != 0) break;\n                }" ({ "{") (expression_statement "iVar8 = FUN_00040250();" (assignment_expression "iVar8 = FUN_00040250()" (identifier "iVar8") (= "=") (call_expression "FUN_00040250()" (identifier "FUN_00040250") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar8 != 0) break;" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (else_clause "else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }" (else "else") (if_statement "if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }" (if "if") (parenthesized_expression "((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0'))" (( "(") (binary_expression "(DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')" (parenthesized_expression "(DAT_001c46c8 != (char *)0x0)" (( "(") (binary_expression "DAT_001c46c8 != (char *)0x0" (identifier "DAT_001c46c8") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*DAT_001c46c8 != '\0')" (( "(") (binary_expression "*DAT_001c46c8 != '\0'" (pointer_expression "*DAT_001c46c8" (* "*") (identifier "DAT_001c46c8")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                  sVar10 = strlen(pcVar5);\n                  do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );\n                }" ({ "{") (expression_statement "sVar10 = strlen(pcVar5);" (assignment_expression "sVar10 = strlen(pcVar5)" (identifier "sVar10") (= "=") (call_expression "strlen(pcVar5)" (identifier "strlen") (argument_list "(pcVar5)" (( "(") (identifier "pcVar5") () ")")))) (; ";")) (do_statement "do {\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  } while( true );" (do "do") (compound_statement "{\n                    local_68 = strchr(pcVar22,(int)DAT_001c4728);\n                    if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }\n                    sVar25 = (int)local_68 - (int)pcVar22;\n                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);\n                    pcVar16 = local_84;\n                    if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }\n                    pcVar22 = (char *)0x0;\n                    strcpy(pcVar16,pcVar5);\n                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }\n                    iVar8 = FUN_00040250();\n                    if (iVar8 != 0) goto LAB_00040900;\n                    free(local_84);\n                    if (*local_68 == '\0') break;\n                    pcVar22 = local_68 + 1;\n                  }" ({ "{") (expression_statement "local_68 = strchr(pcVar22,(int)DAT_001c4728);" (assignment_expression "local_68 = strchr(pcVar22,(int)DAT_001c4728)" (identifier "local_68") (= "=") (call_expression "strchr(pcVar22,(int)DAT_001c4728)" (identifier "strchr") (argument_list "(pcVar22,(int)DAT_001c4728)" (( "(") (identifier "pcVar22") (, ",") (cast_expression "(int)DAT_001c4728" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_001c4728")) () ")")))) (; ";")) (if_statement "if (local_68 == (char *)0x0) {\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }" (if "if") (parenthesized_expression "(local_68 == (char *)0x0)" (( "(") (binary_expression "local_68 == (char *)0x0" (identifier "local_68") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                      sVar25 = strlen(pcVar22);\n                      local_68 = pcVar22 + sVar25;\n                    }" ({ "{") (expression_statement "sVar25 = strlen(pcVar22);" (assignment_expression "sVar25 = strlen(pcVar22)" (identifier "sVar25") (= "=") (call_expression "strlen(pcVar22)" (identifier "strlen") (argument_list "(pcVar22)" (( "(") (identifier "pcVar22") () ")")))) (; ";")) (expression_statement "local_68 = pcVar22 + sVar25;" (assignment_expression "local_68 = pcVar22 + sVar25" (identifier "local_68") (= "=") (binary_expression "pcVar22 + sVar25" (identifier "pcVar22") (+ "+") (identifier "sVar25"))) (; ";")) (} "}"))) (expression_statement "sVar25 = (int)local_68 - (int)pcVar22;" (assignment_expression "sVar25 = (int)local_68 - (int)pcVar22" (identifier "sVar25") (= "=") (binary_expression "(int)local_68 - (int)pcVar22" (cast_expression "(int)local_68" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_68")) (- "-") (cast_expression "(int)pcVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar22")))) (; ";")) (expression_statement "local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);" (assignment_expression "local_84 = (char *)xmalloc(sVar10 + 2 + sVar25)" (identifier "local_84") (= "=") (cast_expression "(char *)xmalloc(sVar10 + 2 + sVar25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar10 + 2 + sVar25)" (identifier "xmalloc") (argument_list "(sVar10 + 2 + sVar25)" (( "(") (binary_expression "sVar10 + 2 + sVar25" (binary_expression "sVar10 + 2" (identifier "sVar10") (+ "+") (number_literal "2")) (+ "+") (identifier "sVar25")) () ")"))))) (; ";")) (expression_statement "pcVar16 = local_84;" (assignment_expression "pcVar16 = local_84" (identifier "pcVar16") (= "=") (identifier "local_84")) (; ";")) (if_statement "if (pcVar22 != local_68) {\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }" (if "if") (parenthesized_expression "(pcVar22 != local_68)" (( "(") (binary_expression "pcVar22 != local_68" (identifier "pcVar22") (!= "!=") (identifier "local_68")) () ")")) (compound_statement "{\n                      memcpy(local_84,pcVar22,sVar25);\n                      local_84[sVar25] = '/';\n                      pcVar16 = local_84 + sVar25 + 1;\n                    }" ({ "{") (expression_statement "memcpy(local_84,pcVar22,sVar25);" (call_expression "memcpy(local_84,pcVar22,sVar25)" (identifier "memcpy") (argument_list "(local_84,pcVar22,sVar25)" (( "(") (identifier "local_84") (, ",") (identifier "pcVar22") (, ",") (identifier "sVar25") () ")"))) (; ";")) (expression_statement "local_84[sVar25] = '/';" (assignment_expression "local_84[sVar25] = '/'" (subscript_expression "local_84[sVar25]" (identifier "local_84") ([ "[") (identifier "sVar25") (] "]")) (= "=") (char_literal "'/'" (' "'") (character "/") (' "'"))) (; ";")) (expression_statement "pcVar16 = local_84 + sVar25 + 1;" (assignment_expression "pcVar16 = local_84 + sVar25 + 1" (identifier "pcVar16") (= "=") (binary_expression "local_84 + sVar25 + 1" (binary_expression "local_84 + sVar25" (identifier "local_84") (+ "+") (identifier "sVar25")) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pcVar22 = (char *)0x0;" (assignment_expression "pcVar22 = (char *)0x0" (identifier "pcVar22") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "strcpy(pcVar16,pcVar5);" (call_expression "strcpy(pcVar16,pcVar5)" (identifier "strcpy") (argument_list "(pcVar16,pcVar5)" (( "(") (identifier "pcVar16") (, ",") (identifier "pcVar5") () ")"))) (; ";")) (while_statement "while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }" (while "while") (parenthesized_expression "(pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0)" (( "(") (comma_expression "pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0" (assignment_expression "pcVar22 = strchr(local_84 + (int)pcVar22,0x24)" (identifier "pcVar22") (= "=") (call_expression "strchr(local_84 + (int)pcVar22,0x24)" (identifier "strchr") (argument_list "(local_84 + (int)pcVar22,0x24)" (( "(") (binary_expression "local_84 + (int)pcVar22" (identifier "local_84") (+ "+") (cast_expression "(int)pcVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar22"))) (, ",") (number_literal "0x24") () ")")))) (, ",") (binary_expression "pcVar22 != (char *)0x0" (identifier "pcVar22") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n                      pcVar16 = strchr(pcVar22,0x2f);\n                      sVar25 = strlen(local_84);\n                      if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }\n                      bVar20 = pcVar22[1];\n                      pcVar15 = pcVar22 + 1;\n                      if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }\n                      pbVar17 = (byte *)(pcVar15 + 1);\n                      bVar29 = bVar20 < 0x4c;\n                      bVar30 = bVar20 == 0x4c;\n                      if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }\n                      free(pcVar27);\n                    }" ({ "{") (expression_statement "pcVar16 = strchr(pcVar22,0x2f);" (assignment_expression "pcVar16 = strchr(pcVar22,0x2f)" (identifier "pcVar16") (= "=") (call_expression "strchr(pcVar22,0x2f)" (identifier "strchr") (argument_list "(pcVar22,0x2f)" (( "(") (identifier "pcVar22") (, ",") (number_literal "0x2f") () ")")))) (; ";")) (expression_statement "sVar25 = strlen(local_84);" (assignment_expression "sVar25 = strlen(local_84)" (identifier "sVar25") (= "=") (call_expression "strlen(local_84)" (identifier "strlen") (argument_list "(local_84)" (( "(") (identifier "local_84") () ")")))) (; ";")) (if_statement "if (pcVar16 != (char *)0x0) {\n                        *pcVar16 = '\0';\n                      }" (if "if") (parenthesized_expression "(pcVar16 != (char *)0x0)" (( "(") (binary_expression "pcVar16 != (char *)0x0" (identifier "pcVar16") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                        *pcVar16 = '\0';\n                      }" ({ "{") (expression_statement "*pcVar16 = '\0';" (assignment_expression "*pcVar16 = '\0'" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (expression_statement "bVar20 = pcVar22[1];" (assignment_expression "bVar20 = pcVar22[1]" (identifier "bVar20") (= "=") (subscript_expression "pcVar22[1]" (identifier "pcVar22") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pcVar15 = pcVar22 + 1;" (assignment_expression "pcVar15 = pcVar22 + 1" (identifier "pcVar15") (= "=") (binary_expression "pcVar22 + 1" (identifier "pcVar22") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar20 == 0x7b) {\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }" (if "if") (parenthesized_expression "(bVar20 == 0x7b)" (( "(") (binary_expression "bVar20 == 0x7b" (identifier "bVar20") (== "==") (number_literal "0x7b")) () ")")) (compound_statement "{\n                        bVar20 = pcVar22[2];\n                        pcVar15 = pcVar22 + 2;\n                      }" ({ "{") (expression_statement "bVar20 = pcVar22[2];" (assignment_expression "bVar20 = pcVar22[2]" (identifier "bVar20") (= "=") (subscript_expression "pcVar22[2]" (identifier "pcVar22") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pcVar15 = pcVar22 + 2;" (assignment_expression "pcVar15 = pcVar22 + 2" (identifier "pcVar15") (= "=") (binary_expression "pcVar22 + 2" (identifier "pcVar22") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "pbVar17 = (byte *)(pcVar15 + 1);" (assignment_expression "pbVar17 = (byte *)(pcVar15 + 1)" (identifier "pbVar17") (= "=") (cast_expression "(byte *)(pcVar15 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar15 + 1)" (( "(") (binary_expression "pcVar15 + 1" (identifier "pcVar15") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar29 = bVar20 < 0x4c;" (assignment_expression "bVar29 = bVar20 < 0x4c" (identifier "bVar29") (= "=") (binary_expression "bVar20 < 0x4c" (identifier "bVar20") (< "<") (number_literal "0x4c"))) (; ";")) (expression_statement "bVar30 = bVar20 == 0x4c;" (assignment_expression "bVar30 = bVar20 == 0x4c" (identifier "bVar30") (= "=") (binary_expression "bVar20 == 0x4c" (identifier "bVar20") (== "==") (number_literal "0x4c"))) (; ";")) (if_statement "if (bVar30) {\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }\n                      else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }" (if "if") (parenthesized_expression "(bVar30)" (( "(") (identifier "bVar30") () ")")) (compound_statement "{\n                        iVar8 = 3;\n                        pbVar23 = pbVar17;\n                        pbVar26 = (byte *)0x701f6;\n                        do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);\n                        bVar28 = false;\n                        bVar29 = (!bVar29 && !bVar30) == bVar29;\n                        if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }\n                        sVar13 = 5;\n                        pcVar27 = (char *)0x0;\n                        pcVar15 = "lib64";\nLAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);\n                        iVar8 = (int)pcVar22 - (int)local_84;\n                        if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }\n                        free(local_84);\n                        local_84 = pcVar12;\n                      }" ({ "{") (expression_statement "iVar8 = 3;" (assignment_expression "iVar8 = 3" (identifier "iVar8") (= "=") (number_literal "3")) (; ";")) (expression_statement "pbVar23 = pbVar17;" (assignment_expression "pbVar23 = pbVar17" (identifier "pbVar23") (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "pbVar26 = (byte *)0x701f6;" (assignment_expression "pbVar26 = (byte *)0x701f6" (identifier "pbVar26") (= "=") (cast_expression "(byte *)0x701f6" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x701f6"))) (; ";")) (do_statement "do {\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        } while (bVar30);" (do "do") (compound_statement "{\n                          if (iVar8 == 0) break;\n                          iVar8 = iVar8 + -1;\n                          bVar29 = *pbVar23 < *pbVar26;\n                          bVar30 = *pbVar23 == *pbVar26;\n                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                        }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar29 = *pbVar23 < *pbVar26;" (assignment_expression "bVar29 = *pbVar23 < *pbVar26" (identifier "bVar29") (= "=") (binary_expression "*pbVar23 < *pbVar26" (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")) (< "<") (pointer_expression "*pbVar26" (* "*") (identifier "pbVar26")))) (; ";")) (expression_statement "bVar30 = *pbVar23 == *pbVar26;" (assignment_expression "bVar30 = *pbVar23 == *pbVar26" (identifier "bVar30") (= "=") (binary_expression "*pbVar23 == *pbVar26" (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")) (== "==") (pointer_expression "*pbVar26" (* "*") (identifier "pbVar26")))) (; ";")) (expression_statement "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1" (identifier "pbVar23") (= "=") (binary_expression "pbVar23 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar31 * -2" (identifier "pbVar23") (+ "+") (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar31")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1" (identifier "pbVar26") (= "=") (binary_expression "pbVar26 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar26 + (uint)bVar31 * -2" (identifier "pbVar26") (+ "+") (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar31")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar30)" (( "(") (identifier "bVar30") () ")")) (; ";")) (expression_statement "bVar28 = false;" (assignment_expression "bVar28 = false" (identifier "bVar28") (= "=") (false "false")) (; ";")) (expression_statement "bVar29 = (!bVar29 && !bVar30) == bVar29;" (assignment_expression "bVar29 = (!bVar29 && !bVar30) == bVar29" (identifier "bVar29") (= "=") (binary_expression "(!bVar29 && !bVar30) == bVar29" (parenthesized_expression "(!bVar29 && !bVar30)" (( "(") (binary_expression "!bVar29 && !bVar30" (unary_expression "!bVar29" (! "!") (identifier "bVar29")) (&& "&&") (unary_expression "!bVar30" (! "!") (identifier "bVar30"))) () ")")) (== "==") (identifier "bVar29"))) (; ";")) (if_statement "if (!bVar29) {\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }" (if "if") (parenthesized_expression "(!bVar29)" (( "(") (unary_expression "!bVar29" (! "!") (identifier "bVar29")) () ")")) (compound_statement "{\n                          iVar8 = 4;\n                          pbVar23 = &DAT_000af890;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);\n                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                        }" ({ "{") (expression_statement "iVar8 = 4;" (assignment_expression "iVar8 = 4" (identifier "iVar8") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar23 = &DAT_000af890;" (assignment_expression "pbVar23 = &DAT_000af890" (identifier "pbVar23") (= "=") (pointer_expression "&DAT_000af890" (& "&") (identifier "DAT_000af890"))) (; ";")) (do_statement "do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          } while (bVar29);" (do "do") (compound_statement "{\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar28 = *pbVar17 < *pbVar23;\n                            bVar29 = *pbVar17 == *pbVar23;\n                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                          }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar28 = *pbVar17 < *pbVar23;" (assignment_expression "bVar28 = *pbVar17 < *pbVar23" (identifier "bVar28") (= "=") (binary_expression "*pbVar17 < *pbVar23" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")))) (; ";")) (expression_statement "bVar29 = *pbVar17 == *pbVar23;" (assignment_expression "bVar29 = *pbVar17 == *pbVar23" (identifier "bVar29") (= "=") (binary_expression "*pbVar17 == *pbVar23" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar31 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar31")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1" (identifier "pbVar23") (= "=") (binary_expression "pbVar23 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar31 * -2" (identifier "pbVar23") (+ "+") (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar31")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar29)" (( "(") (identifier "bVar29") () ")")) (; ";")) (if_statement "if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;" (if "if") (parenthesized_expression "((!bVar28 && !bVar29) != bVar28)" (( "(") (binary_expression "(!bVar28 && !bVar29) != bVar28" (parenthesized_expression "(!bVar28 && !bVar29)" (( "(") (binary_expression "!bVar28 && !bVar29" (unary_expression "!bVar28" (! "!") (identifier "bVar28")) (&& "&&") (unary_expression "!bVar29" (! "!") (identifier "bVar29"))) () ")")) (!= "!=") (identifier "bVar28")) () ")")) (goto_statement "goto LAB_00040c47;" (goto "goto") (statement_identifier "LAB_00040c47") (; ";"))) (} "}"))) (expression_statement "sVar13 = 5;" (assignment_expression "sVar13 = 5" (identifier "sVar13") (= "=") (number_literal "5")) (; ";")) (expression_statement "pcVar27 = (char *)0x0;" (assignment_expression "pcVar27 = (char *)0x0" (identifier "pcVar27") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar15 = "lib64";" (assignment_expression "pcVar15 = "lib64"" (identifier "pcVar15") (= "=") (string_literal ""lib64"" (" """) (string_content "lib64") (" """))) (; ";")) (labeled_statement "LAB_00040b60:\n                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);" (statement_identifier "LAB_00040b60") (: ":") (expression_statement "pcVar12 = (char *)xmalloc(sVar13 + sVar25);" (assignment_expression "pcVar12 = (char *)xmalloc(sVar13 + sVar25)" (identifier "pcVar12") (= "=") (cast_expression "(char *)xmalloc(sVar13 + sVar25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar13 + sVar25)" (identifier "xmalloc") (argument_list "(sVar13 + sVar25)" (( "(") (binary_expression "sVar13 + sVar25" (identifier "sVar13") (+ "+") (identifier "sVar25")) () ")"))))) (; ";"))) (expression_statement "iVar8 = (int)pcVar22 - (int)local_84;" (assignment_expression "iVar8 = (int)pcVar22 - (int)local_84" (identifier "iVar8") (= "=") (binary_expression "(int)pcVar22 - (int)local_84" (cast_expression "(int)pcVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar22")) (- "-") (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")))) (; ";")) (if_statement "if (pcVar16 == (char *)0x0) {\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }\n                        else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }" (if "if") (parenthesized_expression "(pcVar16 == (char *)0x0)" (( "(") (binary_expression "pcVar16 == (char *)0x0" (identifier "pcVar16") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + sVar25);\n                        }" ({ "{") (expression_statement "sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);" (call_expression "sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15)" (identifier "sprintf") (argument_list "(pcVar12,"%.*s%s",iVar8,local_84,pcVar15)" (( "(") (identifier "pcVar12") (, ",") (string_literal ""%.*s%s"" (" """) (string_content "%.*s%s") (" """)) (, ",") (identifier "iVar8") (, ",") (identifier "local_84") (, ",") (identifier "pcVar15") () ")"))) (; ";")) (expression_statement "sVar25 = strlen(pcVar15);" (assignment_expression "sVar25 = strlen(pcVar15)" (identifier "sVar25") (= "=") (call_expression "strlen(pcVar15)" (identifier "strlen") (argument_list "(pcVar15)" (( "(") (identifier "pcVar15") () ")")))) (; ";")) (expression_statement "pcVar22 = (char *)(iVar8 + sVar25);" (assignment_expression "pcVar22 = (char *)(iVar8 + sVar25)" (identifier "pcVar22") (= "=") (cast_expression "(char *)(iVar8 + sVar25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + sVar25)" (( "(") (binary_expression "iVar8 + sVar25" (identifier "iVar8") (+ "+") (identifier "sVar25")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }" (else "else") (compound_statement "{\n                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);\n                          sVar25 = strlen(pcVar15);\n                          pcVar22 = (char *)(iVar8 + 1 + sVar25);\n                        }" ({ "{") (expression_statement "sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);" (call_expression "sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1)" (identifier "sprintf") (argument_list "(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1)" (( "(") (identifier "pcVar12") (, ",") (string_literal ""%.*s%s/%s"" (" """) (string_content "%.*s%s/%s") (" """)) (, ",") (identifier "iVar8") (, ",") (identifier "local_84") (, ",") (identifier "pcVar15") (, ",") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "sVar25 = strlen(pcVar15);" (assignment_expression "sVar25 = strlen(pcVar15)" (identifier "sVar25") (= "=") (call_expression "strlen(pcVar15)" (identifier "strlen") (argument_list "(pcVar15)" (( "(") (identifier "pcVar15") () ")")))) (; ";")) (expression_statement "pcVar22 = (char *)(iVar8 + 1 + sVar25);" (assignment_expression "pcVar22 = (char *)(iVar8 + 1 + sVar25)" (identifier "pcVar22") (= "=") (cast_expression "(char *)(iVar8 + 1 + sVar25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 1 + sVar25)" (( "(") (binary_expression "iVar8 + 1 + sVar25" (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1")) (+ "+") (identifier "sVar25")) () ")")))) (; ";")) (} "}")))) (expression_statement "free(local_84);" (call_expression "free(local_84)" (identifier "free") (argument_list "(local_84)" (( "(") (identifier "local_84") () ")"))) (; ";")) (expression_statement "local_84 = pcVar12;" (assignment_expression "local_84 = pcVar12" (identifier "local_84") (= "=") (identifier "pcVar12")) (; ";")) (} "}")) (else_clause "else {\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }" (else "else") (compound_statement "{\n                        bVar29 = bVar20 < 0x4f;\n                        bVar30 = bVar20 == 0x4f;\n                        if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }\nLAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }\n                        if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }\n                        pcVar27 = (char *)0x0;\n                        pcVar22 = pcVar22 + (1 - (int)local_84);\n                      }" ({ "{") (expression_statement "bVar29 = bVar20 < 0x4f;" (assignment_expression "bVar29 = bVar20 < 0x4f" (identifier "bVar29") (= "=") (binary_expression "bVar20 < 0x4f" (identifier "bVar20") (< "<") (number_literal "0x4f"))) (; ";")) (expression_statement "bVar30 = bVar20 == 0x4f;" (assignment_expression "bVar30 = bVar20 == 0x4f" (identifier "bVar30") (= "=") (binary_expression "bVar20 == 0x4f" (identifier "bVar20") (== "==") (number_literal "0x4f"))) (; ";")) (if_statement "if (bVar30) {\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }" (if "if") (parenthesized_expression "(bVar30)" (( "(") (identifier "bVar30") () ")")) (compound_statement "{\n                          iVar8 = 6;\n                          pbVar23 = pbVar17;\n                          pbVar26 = (byte *)0x704cc;\n                          do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);\n                          bVar28 = false;\n                          bVar29 = (!bVar29 && !bVar30) == bVar29;\n                          if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }\n                          puVar11 = puVar1;\n                          if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }\n                        }" ({ "{") (expression_statement "iVar8 = 6;" (assignment_expression "iVar8 = 6" (identifier "iVar8") (= "=") (number_literal "6")) (; ";")) (expression_statement "pbVar23 = pbVar17;" (assignment_expression "pbVar23 = pbVar17" (identifier "pbVar23") (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "pbVar26 = (byte *)0x704cc;" (assignment_expression "pbVar26 = (byte *)0x704cc" (identifier "pbVar26") (= "=") (cast_expression "(byte *)0x704cc" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x704cc"))) (; ";")) (do_statement "do {\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          } while (bVar30);" (do "do") (compound_statement "{\n                            if (iVar8 == 0) break;\n                            iVar8 = iVar8 + -1;\n                            bVar29 = *pbVar23 < *pbVar26;\n                            bVar30 = *pbVar23 == *pbVar26;\n                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;\n                          }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar29 = *pbVar23 < *pbVar26;" (assignment_expression "bVar29 = *pbVar23 < *pbVar26" (identifier "bVar29") (= "=") (binary_expression "*pbVar23 < *pbVar26" (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")) (< "<") (pointer_expression "*pbVar26" (* "*") (identifier "pbVar26")))) (; ";")) (expression_statement "bVar30 = *pbVar23 == *pbVar26;" (assignment_expression "bVar30 = *pbVar23 == *pbVar26" (identifier "bVar30") (= "=") (binary_expression "*pbVar23 == *pbVar26" (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")) (== "==") (pointer_expression "*pbVar26" (* "*") (identifier "pbVar26")))) (; ";")) (expression_statement "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1" (identifier "pbVar23") (= "=") (binary_expression "pbVar23 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar31 * -2" (identifier "pbVar23") (+ "+") (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar31")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1" (identifier "pbVar26") (= "=") (binary_expression "pbVar26 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar26 + (uint)bVar31 * -2" (identifier "pbVar26") (+ "+") (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar31")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar30)" (( "(") (identifier "bVar30") () ")")) (; ";")) (expression_statement "bVar28 = false;" (assignment_expression "bVar28 = false" (identifier "bVar28") (= "=") (false "false")) (; ";")) (expression_statement "bVar29 = (!bVar29 && !bVar30) == bVar29;" (assignment_expression "bVar29 = (!bVar29 && !bVar30) == bVar29" (identifier "bVar29") (= "=") (binary_expression "(!bVar29 && !bVar30) == bVar29" (parenthesized_expression "(!bVar29 && !bVar30)" (( "(") (binary_expression "!bVar29 && !bVar30" (unary_expression "!bVar29" (! "!") (identifier "bVar29")) (&& "&&") (unary_expression "!bVar30" (! "!") (identifier "bVar30"))) () ")")) (== "==") (identifier "bVar29"))) (; ";")) (if_statement "if (!bVar29) {\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }" (if "if") (parenthesized_expression "(!bVar29)" (( "(") (unary_expression "!bVar29" (! "!") (identifier "bVar29")) () ")")) (compound_statement "{\n                            iVar8 = 7;\n                            pbVar23 = (byte *)"RIGIN}";\n                            do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);\n                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;\n                          }" ({ "{") (expression_statement "iVar8 = 7;" (assignment_expression "iVar8 = 7" (identifier "iVar8") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar23 = (byte *)"RIGIN}";" (assignment_expression "pbVar23 = (byte *)"RIGIN}"" (identifier "pbVar23") (= "=") (cast_expression "(byte *)"RIGIN}"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""RIGIN}"" (" """) (string_content "RIGIN}") (" """)))) (; ";")) (do_statement "do {\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            } while (bVar29);" (do "do") (compound_statement "{\n                              if (iVar8 == 0) break;\n                              iVar8 = iVar8 + -1;\n                              bVar28 = *pbVar17 < *pbVar23;\n                              bVar29 = *pbVar17 == *pbVar23;\n                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;\n                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;\n                            }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar28 = *pbVar17 < *pbVar23;" (assignment_expression "bVar28 = *pbVar17 < *pbVar23" (identifier "bVar28") (= "=") (binary_expression "*pbVar17 < *pbVar23" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")))) (; ";")) (expression_statement "bVar29 = *pbVar17 == *pbVar23;" (assignment_expression "bVar29 = *pbVar17 == *pbVar23" (identifier "bVar29") (= "=") (binary_expression "*pbVar17 == *pbVar23" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar31 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar31")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1" (identifier "pbVar23") (= "=") (binary_expression "pbVar23 + (uint)bVar31 * -2 + 1" (binary_expression "pbVar23 + (uint)bVar31 * -2" (identifier "pbVar23") (+ "+") (binary_expression "(uint)bVar31 * -2" (cast_expression "(uint)bVar31" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar31")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar29)" (( "(") (identifier "bVar29") () ")")) (; ";")) (if_statement "if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;" (if "if") (parenthesized_expression "((!bVar28 && !bVar29) != bVar28)" (( "(") (binary_expression "(!bVar28 && !bVar29) != bVar28" (parenthesized_expression "(!bVar28 && !bVar29)" (( "(") (binary_expression "!bVar28 && !bVar29" (unary_expression "!bVar28" (! "!") (identifier "bVar28")) (&& "&&") (unary_expression "!bVar29" (! "!") (identifier "bVar29"))) () ")")) (!= "!=") (identifier "bVar28")) () ")")) (goto_statement "goto LAB_00040c47;" (goto "goto") (statement_identifier "LAB_00040c47") (; ";"))) (} "}"))) (expression_statement "puVar11 = puVar1;" (assignment_expression "puVar11 = puVar1" (identifier "puVar11") (= "=") (identifier "puVar1")) (; ";")) (if_statement "if (((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }" (if "if") (parenthesized_expression "(((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0))" (( "(") (binary_expression "((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&\n                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)" (parenthesized_expression "((puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0))" (( "(") (binary_expression "(puVar1 != (undefined4 *)0x0) ||\n                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)" (parenthesized_expression "(puVar1 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar1 != (undefined4 *)0x0" (identifier "puVar1") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)" (( "(") (comma_expression "puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0" (assignment_expression "puVar11 = DAT_001c4614" (identifier "puVar11") (= "=") (identifier "DAT_001c4614")) (, ",") (binary_expression "DAT_001c4614 != (undefined4 *)0x0" (identifier "DAT_001c4614") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)" (( "(") (comma_expression "pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0" (assignment_expression "pcVar27 = (char *)*puVar11" (identifier "pcVar27") (= "=") (cast_expression "(char *)*puVar11" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar11" (* "*") (identifier "puVar11")))) (, ",") (binary_expression "pcVar27 != (char *)0x0" (identifier "pcVar27") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n                            if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }\n                            pcVar27 = strrchr(pcVar15,0x2f);\n                            if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }\n                            sVar13 = strlen(pcVar15);\n                            pcVar27 = pcVar15;\n                            goto LAB_00040b60;\n                          }" ({ "{") (if_statement "if (*pcVar27 == '/') {\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }\n                            else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }" (if "if") (parenthesized_expression "(*pcVar27 == '/')" (( "(") (binary_expression "*pcVar27 == '/'" (pointer_expression "*pcVar27" (* "*") (identifier "pcVar27")) (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\n                              pcVar15 = (char *)xstrdup(pcVar27);\n                            }" ({ "{") (expression_statement "pcVar15 = (char *)xstrdup(pcVar27);" (assignment_expression "pcVar15 = (char *)xstrdup(pcVar27)" (identifier "pcVar15") (= "=") (cast_expression "(char *)xstrdup(pcVar27)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xstrdup(pcVar27)" (identifier "xstrdup") (argument_list "(pcVar27)" (( "(") (identifier "pcVar27") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }" (else "else") (compound_statement "{\n                              pcVar12 = (char *)getpwd();\n                              sVar13 = strlen(pcVar27);\n                              sVar14 = strlen(pcVar12);\n                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);\n                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);\n                            }" ({ "{") (expression_statement "pcVar12 = (char *)getpwd();" (assignment_expression "pcVar12 = (char *)getpwd()" (identifier "pcVar12") (= "=") (cast_expression "(char *)getpwd()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "getpwd()" (identifier "getpwd") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "sVar13 = strlen(pcVar27);" (assignment_expression "sVar13 = strlen(pcVar27)" (identifier "sVar13") (= "=") (call_expression "strlen(pcVar27)" (identifier "strlen") (argument_list "(pcVar27)" (( "(") (identifier "pcVar27") () ")")))) (; ";")) (expression_statement "sVar14 = strlen(pcVar12);" (assignment_expression "sVar14 = strlen(pcVar12)" (identifier "sVar14") (= "=") (call_expression "strlen(pcVar12)" (identifier "strlen") (argument_list "(pcVar12)" (( "(") (identifier "pcVar12") () ")")))) (; ";")) (expression_statement "pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);" (assignment_expression "pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14)" (identifier "pcVar15") (= "=") (cast_expression "(char *)xmalloc(sVar13 + 2 + sVar14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar13 + 2 + sVar14)" (identifier "xmalloc") (argument_list "(sVar13 + 2 + sVar14)" (( "(") (binary_expression "sVar13 + 2 + sVar14" (binary_expression "sVar13 + 2" (identifier "sVar13") (+ "+") (number_literal "2")) (+ "+") (identifier "sVar14")) () ")"))))) (; ";")) (expression_statement "sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);" (call_expression "sprintf(pcVar15,"%s/%s",pcVar12,pcVar27)" (identifier "sprintf") (argument_list "(pcVar15,"%s/%s",pcVar12,pcVar27)" (( "(") (identifier "pcVar15") (, ",") (string_literal ""%s/%s"" (" """) (string_content "%s/%s") (" """)) (, ",") (identifier "pcVar12") (, ",") (identifier "pcVar27") () ")"))) (; ";")) (} "}")))) (expression_statement "pcVar27 = strrchr(pcVar15,0x2f);" (assignment_expression "pcVar27 = strrchr(pcVar15,0x2f)" (identifier "pcVar27") (= "=") (call_expression "strrchr(pcVar15,0x2f)" (identifier "strrchr") (argument_list "(pcVar15,0x2f)" (( "(") (identifier "pcVar15") (, ",") (number_literal "0x2f") () ")")))) (; ";")) (if_statement "if (pcVar27 != (char *)0x0) {\n                              *pcVar27 = '\0';\n                            }" (if "if") (parenthesized_expression "(pcVar27 != (char *)0x0)" (( "(") (binary_expression "pcVar27 != (char *)0x0" (identifier "pcVar27") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                              *pcVar27 = '\0';\n                            }" ({ "{") (expression_statement "*pcVar27 = '\0';" (assignment_expression "*pcVar27 = '\0'" (pointer_expression "*pcVar27" (* "*") (identifier "pcVar27")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (expression_statement "sVar13 = strlen(pcVar15);" (assignment_expression "sVar13 = strlen(pcVar15)" (identifier "sVar13") (= "=") (call_expression "strlen(pcVar15)" (identifier "strlen") (argument_list "(pcVar15)" (( "(") (identifier "pcVar15") () ")")))) (; ";")) (expression_statement "pcVar27 = pcVar15;" (assignment_expression "pcVar27 = pcVar15" (identifier "pcVar27") (= "=") (identifier "pcVar15")) (; ";")) (goto_statement "goto LAB_00040b60;" (goto "goto") (statement_identifier "LAB_00040b60") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00040c47:\n                        if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }" (statement_identifier "LAB_00040c47") (: ":") (if_statement "if (DAT_001c475c != 0) {\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }" (if "if") (parenthesized_expression "(DAT_001c475c != 0)" (( "(") (binary_expression "DAT_001c475c != 0" (identifier "DAT_001c475c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                          uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);\n                          FUN_00034d90(uVar9,pcVar22);\n                        }" ({ "{") (expression_statement "uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5);" (assignment_expression "uVar9 = dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5)" (identifier "dcgettext") (argument_list "(0,\n                                            "unrecognised or unsupported token \'%s\' in search path\n"\n                                            ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""unrecognised or unsupported token \'%s\' in search path\n"" (" """) (string_content "unrecognised or unsupported token ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " in search path") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d90(uVar9,pcVar22);" (call_expression "FUN_00034d90(uVar9,pcVar22)" (identifier "FUN_00034d90") (argument_list "(uVar9,pcVar22)" (( "(") (identifier "uVar9") (, ",") (identifier "pcVar22") () ")"))) (; ";")) (} "}")))) (if_statement "if (pcVar16 != (char *)0x0) {\n                          *pcVar16 = '/';\n                        }" (if "if") (parenthesized_expression "(pcVar16 != (char *)0x0)" (( "(") (binary_expression "pcVar16 != (char *)0x0" (identifier "pcVar16") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                          *pcVar16 = '/';\n                        }" ({ "{") (expression_statement "*pcVar16 = '/';" (assignment_expression "*pcVar16 = '/'" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (= "=") (char_literal "'/'" (' "'") (character "/") (' "'"))) (; ";")) (} "}"))) (expression_statement "pcVar27 = (char *)0x0;" (assignment_expression "pcVar27 = (char *)0x0" (identifier "pcVar27") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar22 = pcVar22 + (1 - (int)local_84);" (assignment_expression "pcVar22 = pcVar22 + (1 - (int)local_84)" (identifier "pcVar22") (= "=") (binary_expression "pcVar22 + (1 - (int)local_84)" (identifier "pcVar22") (+ "+") (parenthesized_expression "(1 - (int)local_84)" (( "(") (binary_expression "1 - (int)local_84" (number_literal "1") (- "-") (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84"))) () ")")))) (; ";")) (} "}")))) (expression_statement "free(pcVar27);" (call_expression "free(pcVar27)" (identifier "free") (argument_list "(pcVar27)" (( "(") (identifier "pcVar27") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar8 = FUN_00040250();" (assignment_expression "iVar8 = FUN_00040250()" (identifier "iVar8") (= "=") (call_expression "FUN_00040250()" (identifier "FUN_00040250") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar8 != 0) goto LAB_00040900;" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00040900;" (goto "goto") (statement_identifier "LAB_00040900") (; ";"))) (expression_statement "free(local_84);" (call_expression "free(local_84)" (identifier "free") (argument_list "(local_84)" (( "(") (identifier "local_84") () ")"))) (; ";")) (if_statement "if (*local_68 == '\0') break;" (if "if") (parenthesized_expression "(*local_68 == '\0')" (( "(") (binary_expression "*local_68 == '\0'" (pointer_expression "*local_68" (* "*") (identifier "local_68")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcVar22 = local_68 + 1;" (assignment_expression "pcVar22 = local_68 + 1" (identifier "pcVar22") (= "=") (binary_expression "local_68 + 1" (identifier "local_68") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))))) (expression_statement "sVar10 = strlen((char *)local_78[2]);" (assignment_expression "sVar10 = strlen((char *)local_78[2])" (identifier "sVar10") (= "=") (call_expression "strlen((char *)local_78[2])" (identifier "strlen") (argument_list "((char *)local_78[2])" (( "(") (cast_expression "(char *)local_78[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_78[2]" (identifier "local_78") ([ "[") (number_literal "2") (] "]"))) () ")")))) (; ";")) (if_statement "if (DAT_001c4804 != (int *)0x0) {\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }" (if "if") (parenthesized_expression "(DAT_001c4804 != (int *)0x0)" (( "(") (binary_expression "DAT_001c4804 != (int *)0x0" (identifier "DAT_001c4804") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  piVar24 = DAT_001c4804;\n                  do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);\n                }" ({ "{") (expression_statement "piVar24 = DAT_001c4804;" (assignment_expression "piVar24 = DAT_001c4804" (identifier "piVar24") (= "=") (identifier "DAT_001c4804")) (; ";")) (do_statement "do {\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  } while (piVar24 != (int *)0x0);" (do "do") (compound_statement "{\n                    if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }\n                    piVar24 = (int *)*piVar24;\n                  }" ({ "{") (if_statement "if (piVar24[2] == 0) {\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }" (if "if") (parenthesized_expression "(piVar24[2] == 0)" (( "(") (binary_expression "piVar24[2] == 0" (subscript_expression "piVar24[2]" (identifier "piVar24") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      sVar25 = strlen((char *)piVar24[1]);\n                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);\n                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);\n                      iVar8 = FUN_00040250();\n                      if (iVar8 != 0) goto LAB_00040900;\n                      free(pcVar22);\n                    }" ({ "{") (expression_statement "sVar25 = strlen((char *)piVar24[1]);" (assignment_expression "sVar25 = strlen((char *)piVar24[1])" (identifier "sVar25") (= "=") (call_expression "strlen((char *)piVar24[1])" (identifier "strlen") (argument_list "((char *)piVar24[1])" (( "(") (cast_expression "(char *)piVar24[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar24[1]" (identifier "piVar24") ([ "[") (number_literal "1") (] "]"))) () ")")))) (; ";")) (expression_statement "pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);" (assignment_expression "pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2)" (identifier "pcVar22") (= "=") (cast_expression "(char *)xmalloc(sVar25 + sVar10 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar25 + sVar10 + 2)" (identifier "xmalloc") (argument_list "(sVar25 + sVar10 + 2)" (( "(") (binary_expression "sVar25 + sVar10 + 2" (binary_expression "sVar25 + sVar10" (identifier "sVar25") (+ "+") (identifier "sVar10")) (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);" (call_expression "sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2])" (identifier "sprintf") (argument_list "(pcVar22,"%s/%s",piVar24[1],local_78[2])" (( "(") (identifier "pcVar22") (, ",") (string_literal ""%s/%s"" (" """) (string_content "%s/%s") (" """)) (, ",") (subscript_expression "piVar24[1]" (identifier "piVar24") ([ "[") (number_literal "1") (] "]")) (, ",") (subscript_expression "local_78[2]" (identifier "local_78") ([ "[") (number_literal "2") (] "]")) () ")"))) (; ";")) (expression_statement "iVar8 = FUN_00040250();" (assignment_expression "iVar8 = FUN_00040250()" (identifier "iVar8") (= "=") (call_expression "FUN_00040250()" (identifier "FUN_00040250") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar8 != 0) goto LAB_00040900;" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00040900;" (goto "goto") (statement_identifier "LAB_00040900") (; ";"))) (expression_statement "free(pcVar22);" (call_expression "free(pcVar22)" (identifier "free") (argument_list "(pcVar22)" (( "(") (identifier "pcVar22") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar24 = (int *)*piVar24;" (assignment_expression "piVar24 = (int *)*piVar24" (identifier "piVar24") (= "=") (cast_expression "(int *)*piVar24" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar24" (* "*") (identifier "piVar24")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar24 != (int *)0x0)" (( "(") (binary_expression "piVar24 != (int *)0x0" (identifier "piVar24") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (if_statement "if (bVar3) goto code_r0x00040e73;" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (goto_statement "goto code_r0x00040e73;" (goto "goto") (statement_identifier "code_r0x00040e73") (; ";"))) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (goto_statement "goto LAB_00040900;" (goto "goto") (statement_identifier "LAB_00040900") (; ";")) (} "}"))) (labeled_statement "LAB_00040912:\n      if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }" (statement_identifier "LAB_00040912") (: ":") (if_statement "if (((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }" (if "if") (parenthesized_expression "(((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0))" (( "(") (binary_expression "((DAT_001c45e3 & 0xc0) == 0x80) &&\n         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)" (parenthesized_expression "((DAT_001c45e3 & 0xc0) == 0x80)" (( "(") (binary_expression "(DAT_001c45e3 & 0xc0) == 0x80" (parenthesized_expression "(DAT_001c45e3 & 0xc0)" (( "(") (binary_expression "DAT_001c45e3 & 0xc0" (identifier "DAT_001c45e3") (& "&") (number_literal "0xc0")) () ")")) (== "==") (number_literal "0x80")) () ")")) (&& "&&") (parenthesized_expression "(iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)" (( "(") (comma_expression "iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0" (assignment_expression "iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0)" (identifier "iVar8") (= "=") (call_expression "bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0)" (identifier "bfd_elf_parse_eh_frame_entries") (argument_list "(0,&DAT_001c45e0)" (( "(") (number_literal "0") (, ",") (pointer_expression "&DAT_001c45e0" (& "&") (identifier "DAT_001c45e0")) () ")")))) (, ",") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);\n        FUN_00034dc0(uVar9);\n      }" ({ "{") (expression_statement "uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,"%F%P: failed to parse EH frame entries\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: failed to parse EH frame entries\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: failed to parse EH frame entries\n"" (" """) (string_content "%F%P: failed to parse EH frame entries") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034dc0(uVar9);" (call_expression "FUN_00034dc0(uVar9)" (identifier "FUN_00034dc0") (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")"))) (; ";")) (} "}")))) (} "}")))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (labeled_statement "code_r0x00040e73:\n  uVar9 = local_78[1];" (statement_identifier "code_r0x00040e73") (: ":") (expression_statement "uVar9 = local_78[1];" (assignment_expression "uVar9 = local_78[1]" (identifier "uVar9") (= "=") (subscript_expression "local_78[1]" (identifier "local_78") ([ "[") (number_literal "1") (] "]"))) (; ";"))) (expression_statement "uVar2 = local_78[2];" (assignment_expression "uVar2 = local_78[2]" (identifier "uVar2") (= "=") (subscript_expression "local_78[2]" (identifier "local_78") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar18 = dcgettext(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5);" (assignment_expression "uVar18 = dcgettext(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5)" (identifier "uVar18") (= "=") (call_expression "dcgettext(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5)" (identifier "dcgettext") (argument_list "(0,\n                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"\n                     ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"" (" """) (string_content "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034dc0(uVar18,uVar2,uVar9);" (call_expression "FUN_00034dc0(uVar18,uVar2,uVar9)" (identifier "FUN_00034dc0") (argument_list "(uVar18,uVar2,uVar9)" (( "(") (identifier "uVar18") (, ",") (identifier "uVar2") (, ",") (identifier "uVar9") () ")"))) (; ";")) (labeled_statement "LAB_00040900:\n  local_78 = (undefined4 *)*local_78;" (statement_identifier "LAB_00040900") (: ":") (expression_statement "local_78 = (undefined4 *)*local_78;" (assignment_expression "local_78 = (undefined4 *)*local_78" (identifier "local_78") (= "=") (cast_expression "(undefined4 *)*local_78" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_78" (* "*") (identifier "local_78")))) (; ";"))) (if_statement "if (local_78 == (undefined4 *)0x0) goto LAB_00040912;" (if "if") (parenthesized_expression "(local_78 == (undefined4 *)0x0)" (( "(") (binary_expression "local_78 == (undefined4 *)0x0" (identifier "local_78") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00040912;" (goto "goto") (statement_identifier "LAB_00040912") (; ";"))) (goto_statement "goto LAB_000407c0;" (goto "goto") (statement_identifier "LAB_000407c0") (; ";")) (} "}")))

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

void function_1(void)

{
  int *piVar1;
  type_1 *poVar2;
  type_2 **ppbVar3;
  type_2 *var_30;
  type_3 *pbVar5;
  type_4 *var_13;
  type_2 *var_27;
  type_5 var_29;
  int var_17;
  type_6 var_37;
  char *var_41;
  size_t var_44;
  type_7 *var_8;
  char *pcVar14;
  size_t var_53;
  size_t var_58;
  char *var_47;
  type_8 *var_18;
  char *var_49;
  char *pcVar20;
  type_9 *var_25;
  type_8 var_48;
  type_7 *pbVar23;
  type_10 *var_15;
  type_8 *var_19;
  type_11 *var_61;
  size_t var_42;
  type_8 *var_50;
  char *var_55;
  bool var_52;
  bool var_51;
  bool var_21;
  bool var_20;
  type_8 bVar34;
  type_12 var_11;
  char *var_22;
  type_2 *var_23;
  type_7 *var_24;
  char *var_40;
  type_13 *var_62;
  type_13 n;
  type_13 nn;
  type_13 needed;
  
  bVar34 = 0;
  var_1();
  pbVar5 = link_info.hash;
  if ((link_info.hash)->type == var_2) {
    if (command_line.out_implib_filename != (char *)0x0) {
      var_3(command_line.out_implib_filename);
      link_info.out_implib_bfd =
           (type_7 *)var_4(command_line.out_implib_filename,(link_info.output_bfd)->xvec->name);
      var_41 = command_line.out_implib_filename;
      if (link_info.out_implib_bfd == (type_7 *)0x0) {
        pcVar20 = (char *)var_5(0,"%F%P: %s: can\'t open for writing: %E\n",5);
        var_6(pcVar20,var_41);
      }
    }
    pbVar23 = link_info.output_bfd;
    var_8 = link_info.input_bfds;
    if (var_7 != (char *)0x0) {
      for (; var_8 != (type_7 *)0x0; var_8 = (var_8->link).next) {
        if (((var_8->xvec->flavour == var_9) && (var_8->section_count != 0)) &&
           ((*(type_8 *)((int)var_8->usrdata + 0x24) & 0x10) == 0)) {
          var_11 = var_10(var_7);
          if ((var_11 == 0) || (var_11 + 0x10 == 0)) {
            var_41 = "%P: warning: unrecognized --build-id style ignored\n";
          }
          else {
            var_13 = (type_4 *)
                     var_12
                               (var_8,".note.gnu.build-id",
                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */
                               );
            if (var_13 != (type_4 *)0x0) {
              var_13->alignment_power = 2;
              pbVar23 = link_info.output_bfd;
              poVar2 = (((link_info.output_bfd)->tdata).elf_obj_data)->o;
              (poVar2->build_id).after_write_object_contents = write_build_id;
              var_41 = var_7;
              (poVar2->build_id).sec = var_13;
              (poVar2->build_id).style = var_41;
              *(type_14 *)((int)var_13->used_by_bfd + 4) = 7;
              var_13->size = var_11 + 0x10;
              goto LAB_00040754;
            }
            var_41 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";
          }
          var_41 = (char *)var_5(0,var_41,5);
          var_6(var_41);
          break;
        }
      }
      var_14(var_7);
      var_7 = (char *)0x0;
      pbVar23 = link_info.output_bfd;
    }
LAB_00040754:
    (**(type_15 **)((int)pbVar23->xvec->backend_data + 0x1d0))(&link_info);
    if ((link_info._0_1_ & 3) == 2) {
      if ((type_8)link_info._5_1_ >> 7 == (~link_info._6_1_ & 1)) {
        var_12
                  (link_info.input_bfds,".note.GNU-stack",(type_8)link_info._5_1_ >> 3 & 0x10 | 8);
      }
    }
    else {
      if (((link_info._4_1_ & 0x20) == 0) && (link_info.input_bfds != (type_7 *)0x0)) {
        var_23 = (type_2 *)0x0;
        var_51 = false;
        var_24 = (type_7 *)0x0;
        var_8 = link_info.input_bfds;
        do {
          while ((*(type_8 *)((int)var_8->usrdata + 0x24) & 0x10) != 0) {
LAB_00040ee8:
            var_8 = (var_8->link).next;
            if (var_8 == (type_7 *)0x0) goto LAB_00040fe6;
          }
          var_15 = var_8->sections;
          if (var_15 != (type_10 *)0x0) {
            var_22 = (char *)0x0;
            do {
              var_20 = var_15->output_section <
                       (type_10 *)(var_16 + 0x180);
              var_52 = var_15->output_section ==
                       (type_10 *)(var_16 + 0x180);
              var_41 = var_22;
              if (!var_52) {
                var_17 = 0xf;
                var_18 = (type_8 *)var_15->name;
                var_19 = (type_8 *)".eh_frame_entry";
                do {
                  if (var_17 == 0) break;
                  var_17 = var_17 + -1;
                  var_20 = *var_18 < *var_19;
                  var_52 = *var_18 == *var_19;
                  var_18 = var_18 + (type_5)bVar34 * -2 + 1;
                  var_19 = var_19 + (type_5)bVar34 * -2 + 1;
                } while (var_52);
                var_21 = false;
                var_20 = (!var_20 && !var_52) == var_20;
                if (var_20) {
                  var_22 = (char *)0x2;
                  goto LAB_00040f91;
                }
                var_17 = 10;
                var_18 = (type_8 *)var_15->name;
                var_19 = (type_8 *)".eh_frame";
                do {
                  if (var_17 == 0) break;
                  var_17 = var_17 + -1;
                  var_21 = *var_18 < *var_19;
                  var_20 = *var_18 == *var_19;
                  var_18 = var_18 + (type_5)bVar34 * -2 + 1;
                  var_19 = var_19 + (type_5)bVar34 * -2 + 1;
                } while (var_20);
                if (((!var_21 && !var_20) == var_21) &&
                   (piVar1 = (int *)((int)&var_15->size + 4), var_41 = (char *)1,
                   *piVar1 == 0 && (type_5)(8 < (type_5)var_15->size) <= (type_5)-*piVar1)) {
                  var_41 = var_22;
                }
              }
              var_22 = var_41;
              var_15 = var_15->next;
            } while (var_15 != (type_10 *)0x0);
            if (var_22 != (char *)0x0) {
LAB_00040f91:
              var_27 = (type_2 *)var_22;
              if ((var_23 != (type_2 *)0x0) &&
                 (var_27 = var_23, var_23 != (type_2 *)var_22)) {
                if (var_22 != (char *)0x1) {
                  var_8 = var_24;
                }
                var_41 = (char *)var_5(0,
                                            "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"
                                            ,5);
                var_6(var_41,var_8);
                break;
              }
              var_23 = var_27;
              if ((var_24 == (type_7 *)0x0) &&
                 (((var_22 == (char *)0x2 || ((link_info._2_2_ & 0xc000) != 0)) &&
                  (var_51 = true, var_8->xvec->flavour == var_9)))) {
                var_24 = var_8;
              }
            }
          }
          if (var_23 != (type_2 *)0x2) goto LAB_00040ee8;
          var_8 = (var_8->link).next;
          link_info._2_2_ = link_info._2_2_ & 0x3fff | 0x8000;
        } while (var_8 != (type_7 *)0x0);
LAB_00040fe6:
        if ((var_24 == (type_7 *)0x0) ||
           (var_25 = (type_9 *)
                      var_12
                                (var_24,".eh_frame_hdr",
                                 *(type_5 *)((int)var_24->xvec->backend_data + 0x30) | 8),
           var_25 == (type_9 *)0x0)) {
          if (var_51) {
            var_41 = (char *)var_5(0,
                                        "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"
                                        ,5);
            var_6(var_41);
          }
        }
        else {
          var_25[2].u.i.warning = (char *)0x2;
          pbVar5[4].undefs_tail = var_25;
        }
      }
      var_27 = (type_2 *)var_26(link_info.output_bfd,&link_info);
      var_23 = var_27;
      if (var_27 != (type_2 *)0x0) {
LAB_000407c0:
        var_30 = var_27;
        if ((var_23->by == (type_7 *)0x0) ||
           ((var_29 = var_28(var_23->by), (var_29 & 1) == 0 &&
            (((var_23->by == (type_7 *)0x0 || ((link_info._2_2_ & 0x180) != 0x80)) ||
             (var_29 = var_28(var_23->by), (var_29 & 4) == 0)))))) {
          for (; var_30 != var_23; var_30 = var_30->next) {
            if (((var_30->by == (type_7 *)0x0) ||
                (var_29 = var_28(var_30->by), (var_29 & 1) == 0)) &&
               (var_17 = var_31(var_30->name,var_23->name), var_17 == 0)) {
              if (var_30 != var_23) goto LAB_00040900;
              break;
            }
          }
          var_33 = (type_16 *)0x0;
          global_needed = var_23;
          real_func = gldaarch64elf_check_needed;
          var_32(aarch64_for_each_input_file_wrapper);
          if ((var_33 == (type_16 *)0x0) ||
             (var_29 = var_28(var_33->the_bfd), (var_29 & 1) != 0)) {
            var_8 = var_23->by;
            var_41 = var_23->name;
            n.by = var_8;
            n.name = var_41;
            nn.by = var_8;
            if (var_34 != 0) {
              pcVar20 = (char *)var_5(0,"%s needed by %pB\n",5);
              var_35(pcVar20,var_41,var_8);
            }
            if (var_33 == (type_16 *)0x0) {
LAB_00040998:
              var_62 = (type_13 *)0x0;
              do {
                pcVar20 = n.name;
                var_41 = command_line.rpath_link;
                if (*n.name == '/') {
                  var_37 = var_36(&n,(int)n.name,var_62);
                  if (var_37 != 0) goto LAB_00040900;
                }
                else if ((command_line.rpath_link != (char *)0x0) &&
                        (*command_line.rpath_link != '\0')) {
                  needed.by = n.by;
                  needed.name = n.name;
                  var_44 = var_38(n.name);
                  do {
                    var_40 = var_39(var_41,(int)config.rpath_separator);
                    if (var_40 == (char *)0x0) {
                      var_42 = var_38(var_41);
                      var_40 = var_41 + var_42;
                    }
                    var_42 = (int)var_40 - (int)var_41;
                    var_22 = (char *)var_43(var_44 + 2 + var_42);
                    var_47 = var_22;
                    if (var_41 != var_40) {
                      var_45(var_22,var_41,var_42);
                      var_22[var_42] = '/';
                      var_47 = var_22 + var_42 + 1;
                    }
                    var_41 = (char *)0x0;
                    var_46(var_47,pcVar20);
                    while (var_41 = var_39(var_22 + (int)var_41,0x24), var_41 != (char *)0x0) {
                      var_47 = var_39(var_41,0x2f);
                      var_42 = var_38(var_22);
                      if (var_47 != (char *)0x0) {
                        *var_47 = '\0';
                      }
                      var_48 = var_41[1];
                      var_49 = var_41 + 1;
                      if (var_48 == 0x7b) {
                        var_48 = var_41[2];
                        var_49 = var_41 + 2;
                      }
                      var_18 = (type_8 *)(var_49 + 1);
                      var_51 = var_48 < 0x4c;
                      var_20 = var_48 == 0x4c;
                      if (var_20) {
                        var_17 = 3;
                        var_19 = var_18;
                        var_50 = (type_8 *)0x701f6;
                        do {
                          if (var_17 == 0) break;
                          var_17 = var_17 + -1;
                          var_51 = *var_19 < *var_50;
                          var_20 = *var_19 == *var_50;
                          var_19 = var_19 + (type_5)bVar34 * -2 + 1;
                          var_50 = var_50 + (type_5)bVar34 * -2 + 1;
                        } while (var_20);
                        var_52 = false;
                        var_51 = (!var_51 && !var_20) == var_51;
                        if (!var_51) {
                          var_17 = 4;
                          var_19 = &DAT_000af890;
                          do {
                            if (var_17 == 0) break;
                            var_17 = var_17 + -1;
                            var_52 = *var_18 < *var_19;
                            var_51 = *var_18 == *var_19;
                            var_18 = var_18 + (type_5)bVar34 * -2 + 1;
                            var_19 = var_19 + (type_5)bVar34 * -2 + 1;
                          } while (var_51);
                          if ((!var_52 && !var_51) != var_52) goto LAB_00040c47;
                        }
                        var_53 = 5;
                        var_55 = (char *)0x0;
                        var_49 = "lib64";
LAB_00040b60:
                        pcVar14 = (char *)var_43(var_53 + var_42);
                        var_17 = (int)var_41 - (int)var_22;
                        if (var_47 == (char *)0x0) {
                          var_54(pcVar14,"%.*s%s",var_17,var_22,var_49);
                          var_42 = var_38(var_49);
                          var_41 = (char *)(var_17 + var_42);
                        }
                        else {
                          var_54(pcVar14,"%.*s%s/%s",var_17,var_22,var_49,var_47 + 1);
                          var_42 = var_38(var_49);
                          var_41 = (char *)(var_17 + 1 + var_42);
                        }
                        var_14(var_22);
                        var_22 = pcVar14;
                      }
                      else {
                        var_51 = var_48 < 0x4f;
                        var_20 = var_48 == 0x4f;
                        if (var_20) {
                          var_17 = 6;
                          var_19 = var_18;
                          var_50 = (type_8 *)0x704cc;
                          do {
                            if (var_17 == 0) break;
                            var_17 = var_17 + -1;
                            var_51 = *var_19 < *var_50;
                            var_20 = *var_19 == *var_50;
                            var_19 = var_19 + (type_5)bVar34 * -2 + 1;
                            var_50 = var_50 + (type_5)bVar34 * -2 + 1;
                          } while (var_20);
                          var_52 = false;
                          var_51 = (!var_51 && !var_20) == var_51;
                          if (!var_51) {
                            var_17 = 7;
                            var_19 = (type_8 *)"RIGIN}";
                            do {
                              if (var_17 == 0) break;
                              var_17 = var_17 + -1;
                              var_52 = *var_18 < *var_19;
                              var_51 = *var_18 == *var_19;
                              var_18 = var_18 + (type_5)bVar34 * -2 + 1;
                              var_19 = var_19 + (type_5)bVar34 * -2 + 1;
                            } while (var_51);
                            if ((!var_52 && !var_51) != var_52) goto LAB_00040c47;
                          }
                          var_8 = needed.by;
                          if (((needed.by != (type_7 *)0x0) ||
                              (var_8 = link_info.output_bfd, link_info.output_bfd != (type_7 *)0x0))
                             && (var_55 = var_8->filename, var_55 != (char *)0x0)) {
                            if (*var_55 == '/') {
                              var_49 = (char *)var_56(var_55);
                            }
                            else {
                              pcVar14 = (char *)var_57();
                              var_53 = var_38(var_55);
                              var_58 = var_38(pcVar14);
                              var_49 = (char *)var_43(var_53 + 2 + var_58);
                              var_54(var_49,"%s/%s",pcVar14,var_55);
                            }
                            var_55 = var_59(var_49,0x2f);
                            if (var_55 != (char *)0x0) {
                              *var_55 = '\0';
                            }
                            var_53 = var_38(var_49);
                            var_55 = var_49;
                            goto LAB_00040b60;
                          }
                        }
LAB_00040c47:
                        if (var_34 != 0) {
                          var_49 = (char *)var_5(0,
                                                  "unrecognised or unsupported token \'%s\' in search path\n"
                                                  ,5);
                          var_35(var_49,var_41);
                        }
                        if (var_47 != (char *)0x0) {
                          *var_47 = '/';
                        }
                        var_55 = (char *)0x0;
                        var_41 = var_41 + (1 - (int)var_22);
                      }
                      var_14(var_55);
                    }
                    needed.name = var_22;
                    var_37 = var_36(&needed,(int)var_22,var_62);
                    if (var_37 != 0) goto LAB_00040900;
                    var_14(var_22);
                    if (*var_40 == '\0') break;
                    var_41 = var_40 + 1;
                  } while( true );
                }
                var_44 = var_38(var_23->name);
                if (var_60 != (type_17 *)0x0) {
                  var_61 = var_60;
                  do {
                    if (var_61->cmdline == 0) {
                      var_42 = var_38(var_61->name);
                      var_41 = (char *)var_43(var_42 + var_44 + 2);
                      var_54(var_41,"%s/%s",var_61->name,var_23->name);
                      nn.name = var_41;
                      var_37 = var_36(&nn,(int)var_41,var_62);
                      if (var_37 != 0) goto LAB_00040900;
                      var_14(var_41);
                    }
                    var_61 = var_61->next;
                  } while (var_61 != (type_11 *)0x0);
                }
                if (var_62 == (type_13 *)0x1) goto code_r0x00040e73;
                var_62 = (type_13 *)0x1;
              } while( true );
            }
            nn.name = var_33->filename;
            var_37 = var_36(&nn,(int)nn.name,(type_13 *)0x1);
            if (var_37 == 0) goto LAB_00040998;
          }
        }
        goto LAB_00040900;
      }
LAB_00040912:
      if (((link_info._3_1_ & 0xc0) == 0x80) &&
         (var_17 = var_63(0,&link_info), var_17 == 0)) {
        var_41 = (char *)var_5(0,"%F%P: failed to parse EH frame entries\n",5);
        var_6(var_41);
      }
    }
  }
  return;
code_r0x00040e73:
  var_8 = var_23->by;
  var_41 = var_23->name;
  pcVar20 = (char *)var_5(0,
                              "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"
                              ,5);
  var_6(pcVar20,var_41,var_8);
LAB_00040900:
  ppbVar3 = &var_23->next;
  var_23 = *ppbVar3;
  if (*ppbVar3 == (type_2 *)0x0) goto LAB_00040912;
  goto LAB_000407c0;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void MASKED(void)

{
  undefined4 *puVar1;
  undefined4 uVar2;
  bool bVar3;
  void *pvVar4;
  char *pcVar5;
  undefined4 *puVar6;
  uint uVar7;
  int iVar8;
  undefined4 uVar9;
  size_t sVar10;
  undefined4 *puVar11;
  char *pcVar12;
  size_t sVar13;
  size_t sVar14;
  char *pcVar15;
  char *pcVar16;
  byte *pbVar17;
  undefined4 uVar18;
  int iVar19;
  byte bVar20;
  int iVar21;
  char *pcVar22;
  byte *pbVar23;
  int *piVar24;
  size_t sVar25;
  byte *pbVar26;
  char *pcVar27;
  bool bVar28;
  bool bVar29;
  bool bVar30;
  byte bVar31;
  longlong lVar32;
  char *local_84;
  undefined4 *local_78;
  int local_74;
  char *local_68;
  
  bVar31 = 0;
  FUN_000339e0();
  iVar8 = DAT_001c4600;
  if (*(int *)(DAT_001c4600 + 0x28) == 1) {
    if (DAT_001c46a0 != 0) {
      unlink_if_ordinary(DAT_001c46a0);
      DAT_001c4618 = bfd_openw(DAT_001c46a0,*(undefined4 *)DAT_001c4614[1]);
      iVar19 = DAT_001c46a0;
      if (DAT_001c4618 == 0) {
        uVar9 = dcgettext(0,"%F%P: %s: can\'t open for writing: %E\n",5);
        FUN_00034dc0(uVar9,iVar19);
      }
    }
    puVar6 = DAT_001c4614;
    iVar19 = DAT_001c461c;
    if (DAT_001c3be4 != (void *)0x0) {
      for (; iVar19 != 0; iVar19 = *(int *)(iVar19 + 0x9c)) {
        if (((*(int *)(*(int *)(iVar19 + 4) + 4) == 5) && (*(int *)(iVar19 + 0x68) != 0)) &&
           ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) == 0)) {
          lVar32 = FUN_00038a90(DAT_001c3be4);
          if ((lVar32 == 0) || (lVar32 + 0x10 == 0)) {
            pcVar5 = "%P: warning: unrecognized --build-id style ignored\n";
          }
          else {
            iVar19 = bfd_make_section_with_flags
                               (iVar19,".note.gnu.build-id",
                                "t.*) }\n  .rela.fini      : { *(.rela.fini) }\n  .rela.rodata    : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) }\n  .rela.data.rel.ro   : { *(.rela.data.rel.ro .rela.data.rel.ro.* .rela.gnu.linkonce.d.rel.ro.*) }\n  .rela.data      : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) }\n  .rela.tdata\t  : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) }\n  .rela.tbss\t  : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) }\n  .rela.ctors     : { *(.rela.ctors) }\n  .rela.dtors     : { *(.rela.dtors) }\n  .rela.got       : { *(.rela.got) }\n  .rela.bss       : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }\n  .rela.ifunc     : { *(.rela.ifunc) }\n  .rela.plt       :\n    {\n      *(.rela.plt)\n      PROVIDE_HIDDEN (__rela_iplt_start = .);\n      *(.rela.iplt)\n      PROVIDE_HIDDEN (__rela_iplt_end = .);\n    }\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  .init           :\n  {\n    KEEP (*(SORT_NONE(.init)))\n  } =0x1f2003d5\n  .plt            : ALIGN(16) { *(.plt) *(.iplt) }\n  .text           :\n  {\n    *(.text.unlikely .text.*_unlikely .text.unlikely.*)\n    *(.text.exit .text.exit.*)\n    *(.text.startup .text.startup.*)\n    *(.text.hot .text.hot.*)\n    *(.text .stub .text.* .gnu.linkonce.t.*)\n    /* .gnu.warning sections are handled specially by elf32.em.  */\n    *(.gnu.warning)\n  } =0x1f2003d5\n  .fini           :\n  {\n    KEEP (*(SORT_NONE(.fini)))\n  } =0x1f2003d5\n  PROVIDE (__etext = .);\n  PROVIDE (_etext = .);\n  PROVIDE (etext = .);\n  . = ALIGN(CONSTANT (MAXPAGESIZE));\n  /* Adjust the address for the rodata segment.  We want to adjust up to\n     the same address within the page on the next page up.  */\n  . = SEGMENT_START(\"rodata-segment\", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));\n  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }\n  .rodata1        : { *(.rodata1) }\n  .eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }\n  .eh_frame       : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }\n  .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table\n  .gcc_e..." /* TRUNCATED STRING LITERAL */
                               );
            if (iVar19 != 0) {
              *(undefined4 *)(iVar19 + 0x58) = 2;
              puVar6 = DAT_001c4614;
              iVar21 = *(int *)(DAT_001c4614[0x28] + 0x9c0);
              *(code **)(iVar21 + 0x10) = FUN_0003f390;
              pvVar4 = DAT_001c3be4;
              *(int *)(iVar21 + 0x18) = iVar19;
              *(void **)(iVar21 + 0x14) = pvVar4;
              *(undefined4 *)(*(int *)(iVar19 + 0xa4) + 4) = 7;
              *(longlong *)(iVar19 + 0x2c) = lVar32 + 0x10;
              goto LAB_00040754;
            }
            pcVar5 = "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n";
          }
          uVar9 = dcgettext(0,pcVar5,5);
          FUN_00034dc0(uVar9);
          break;
        }
      }
      free(DAT_001c3be4);
      DAT_001c3be4 = (void *)0x0;
      puVar6 = DAT_001c4614;
    }
LAB_00040754:
    (**(code **)(*(int *)(puVar6[1] + 0x1c0) + 0x1d0))(&DAT_001c45e0);
    if ((DAT_001c45e0 & 3) == 2) {
      if (DAT_001c45e5 >> 7 == (~DAT_001c45e6 & 1)) {
        bfd_make_section_with_flags(DAT_001c461c,".note.GNU-stack",DAT_001c45e5 >> 3 & 0x10 | 8);
      }
    }
    else {
      if (((DAT_001c45e4 & 0x20) == 0) && (DAT_001c461c != 0)) {
        local_78 = (undefined4 *)0x0;
        bVar3 = false;
        local_74 = 0;
        iVar19 = DAT_001c461c;
        do {
          while ((*(byte *)(*(int *)(iVar19 + 0xa4) + 0x24) & 0x10) != 0) {
LAB_00040ee8:
            iVar19 = *(int *)(iVar19 + 0x9c);
            if (iVar19 == 0) goto LAB_00040fe6;
          }
          puVar6 = *(undefined4 **)(iVar19 + 0x60);
          if (puVar6 != (undefined4 *)0x0) {
            local_84 = (char *)0x0;
            do {
              bVar29 = (undefined *)puVar6[0x15] < PTR__bfd_std_section_001c1fd4 + 0x180;
              bVar30 = (undefined *)puVar6[0x15] == PTR__bfd_std_section_001c1fd4 + 0x180;
              pcVar5 = local_84;
              if (!bVar30) {
                iVar21 = 0xf;
                pbVar17 = (byte *)*puVar6;
                pbVar23 = (byte *)".eh_frame_entry";
                do {
                  if (iVar21 == 0) break;
                  iVar21 = iVar21 + -1;
                  bVar29 = *pbVar17 < *pbVar23;
                  bVar30 = *pbVar17 == *pbVar23;
                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;
                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;
                } while (bVar30);
                bVar28 = false;
                bVar29 = (!bVar29 && !bVar30) == bVar29;
                if (bVar29) {
                  local_84 = (char *)0x2;
                  goto LAB_00040f91;
                }
                iVar21 = 10;
                pbVar17 = (byte *)*puVar6;
                pbVar23 = (byte *)".eh_frame";
                do {
                  if (iVar21 == 0) break;
                  iVar21 = iVar21 + -1;
                  bVar28 = *pbVar17 < *pbVar23;
                  bVar29 = *pbVar17 == *pbVar23;
                  pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;
                  pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;
                } while (bVar29);
                if (((!bVar28 && !bVar29) == bVar28) &&
                   (pcVar5 = (char *)1,
                   puVar6[0xc] == 0 && (uint)(8 < (uint)puVar6[0xb]) <= (uint)-puVar6[0xc])) {
                  pcVar5 = local_84;
                }
              }
              local_84 = pcVar5;
              puVar6 = (undefined4 *)puVar6[3];
            } while (puVar6 != (undefined4 *)0x0);
            if (local_84 != (char *)0x0) {
LAB_00040f91:
              pcVar5 = local_84;
              if ((local_78 != (undefined4 *)0x0) &&
                 (pcVar5 = (char *)local_78, (char *)local_78 != local_84)) {
                if (local_84 != (char *)0x1) {
                  iVar19 = local_74;
                }
                uVar9 = dcgettext(0,
                                  "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"
                                  ,5);
                FUN_00034dc0(uVar9,iVar19);
                break;
              }
              local_78 = (undefined4 *)pcVar5;
              if ((local_74 == 0) &&
                 (((local_84 == (char *)0x2 || ((_DAT_001c45e2 & 0xc000) != 0)) &&
                  (bVar3 = true, *(int *)(*(int *)(iVar19 + 4) + 4) == 5)))) {
                local_74 = iVar19;
              }
            }
          }
          if (local_78 != (undefined4 *)0x2) goto LAB_00040ee8;
          iVar19 = *(int *)(iVar19 + 0x9c);
          _DAT_001c45e2 = _DAT_001c45e2 & 0x3fff | 0x8000;
        } while (iVar19 != 0);
LAB_00040fe6:
        if ((local_74 == 0) ||
           (iVar19 = bfd_make_section_with_flags
                               (local_74,".eh_frame_hdr",
                                *(uint *)(*(int *)(*(int *)(local_74 + 4) + 0x1c0) + 0x30) | 8),
           iVar19 == 0)) {
          if (bVar3) {
            uVar9 = dcgettext(0,
                              "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"
                              ,5);
            FUN_00034dc0(uVar9);
          }
        }
        else {
          *(undefined4 *)(iVar19 + 0x58) = 2;
          *(int *)(iVar8 + 0xd0) = iVar19;
        }
      }
      puVar6 = (undefined4 *)bfd_elf_get_needed_list(DAT_001c4614,&DAT_001c45e0);
      local_78 = puVar6;
      if (puVar6 != (undefined4 *)0x0) {
LAB_000407c0:
        puVar1 = puVar6;
        if ((local_78[1] == 0) ||
           ((uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 1) == 0 &&
            (((local_78[1] == 0 || ((_DAT_001c45e2 & 0x180) != 0x80)) ||
             (uVar7 = bfd_elf_get_dyn_lib_class(local_78[1]), (uVar7 & 4) == 0)))))) {
          for (; puVar1 != local_78; puVar1 = (undefined4 *)*puVar1) {
            if (((puVar1[1] == 0) ||
                (uVar7 = bfd_elf_get_dyn_lib_class(puVar1[1]), (uVar7 & 1) == 0)) &&
               (iVar8 = strcmp((char *)puVar1[2],(char *)local_78[2]), iVar8 == 0)) {
              if (puVar1 != local_78) goto LAB_00040900;
              break;
            }
          }
          DAT_001c3bf8 = 0;
          DAT_001c3c60 = local_78;
          DAT_001c3c64 = FUN_00040150;
          FUN_000276c0(FUN_0003d480);
          if ((DAT_001c3bf8 == 0) ||
             (uVar7 = bfd_elf_get_dyn_lib_class(*(undefined4 *)(DAT_001c3bf8 + 0x10)),
             (uVar7 & 1) != 0)) {
            puVar1 = (undefined4 *)local_78[1];
            pcVar5 = (char *)local_78[2];
            if (DAT_001c475c != 0) {
              uVar9 = dcgettext(0,"%s needed by %pB\n",5);
              FUN_00034d90(uVar9,pcVar5,puVar1);
            }
            if ((DAT_001c3bf8 == 0) || (iVar8 = FUN_00040250(), iVar8 == 0)) {
              bVar3 = false;
              do {
                pcVar22 = DAT_001c46c8;
                if (*pcVar5 == '/') {
                  iVar8 = FUN_00040250();
                  if (iVar8 != 0) break;
                }
                else if ((DAT_001c46c8 != (char *)0x0) && (*DAT_001c46c8 != '\0')) {
                  sVar10 = strlen(pcVar5);
                  do {
                    local_68 = strchr(pcVar22,(int)DAT_001c4728);
                    if (local_68 == (char *)0x0) {
                      sVar25 = strlen(pcVar22);
                      local_68 = pcVar22 + sVar25;
                    }
                    sVar25 = (int)local_68 - (int)pcVar22;
                    local_84 = (char *)xmalloc(sVar10 + 2 + sVar25);
                    pcVar16 = local_84;
                    if (pcVar22 != local_68) {
                      memcpy(local_84,pcVar22,sVar25);
                      local_84[sVar25] = '/';
                      pcVar16 = local_84 + sVar25 + 1;
                    }
                    pcVar22 = (char *)0x0;
                    strcpy(pcVar16,pcVar5);
                    while (pcVar22 = strchr(local_84 + (int)pcVar22,0x24), pcVar22 != (char *)0x0) {
                      pcVar16 = strchr(pcVar22,0x2f);
                      sVar25 = strlen(local_84);
                      if (pcVar16 != (char *)0x0) {
                        *pcVar16 = '\0';
                      }
                      bVar20 = pcVar22[1];
                      pcVar15 = pcVar22 + 1;
                      if (bVar20 == 0x7b) {
                        bVar20 = pcVar22[2];
                        pcVar15 = pcVar22 + 2;
                      }
                      pbVar17 = (byte *)(pcVar15 + 1);
                      bVar29 = bVar20 < 0x4c;
                      bVar30 = bVar20 == 0x4c;
                      if (bVar30) {
                        iVar8 = 3;
                        pbVar23 = pbVar17;
                        pbVar26 = (byte *)0x701f6;
                        do {
                          if (iVar8 == 0) break;
                          iVar8 = iVar8 + -1;
                          bVar29 = *pbVar23 < *pbVar26;
                          bVar30 = *pbVar23 == *pbVar26;
                          pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;
                          pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;
                        } while (bVar30);
                        bVar28 = false;
                        bVar29 = (!bVar29 && !bVar30) == bVar29;
                        if (!bVar29) {
                          iVar8 = 4;
                          pbVar23 = &DAT_000af890;
                          do {
                            if (iVar8 == 0) break;
                            iVar8 = iVar8 + -1;
                            bVar28 = *pbVar17 < *pbVar23;
                            bVar29 = *pbVar17 == *pbVar23;
                            pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;
                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;
                          } while (bVar29);
                          if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;
                        }
                        sVar13 = 5;
                        pcVar27 = (char *)0x0;
                        pcVar15 = "lib64";
LAB_00040b60:
                        pcVar12 = (char *)xmalloc(sVar13 + sVar25);
                        iVar8 = (int)pcVar22 - (int)local_84;
                        if (pcVar16 == (char *)0x0) {
                          sprintf(pcVar12,"%.*s%s",iVar8,local_84,pcVar15);
                          sVar25 = strlen(pcVar15);
                          pcVar22 = (char *)(iVar8 + sVar25);
                        }
                        else {
                          sprintf(pcVar12,"%.*s%s/%s",iVar8,local_84,pcVar15,pcVar16 + 1);
                          sVar25 = strlen(pcVar15);
                          pcVar22 = (char *)(iVar8 + 1 + sVar25);
                        }
                        free(local_84);
                        local_84 = pcVar12;
                      }
                      else {
                        bVar29 = bVar20 < 0x4f;
                        bVar30 = bVar20 == 0x4f;
                        if (bVar30) {
                          iVar8 = 6;
                          pbVar23 = pbVar17;
                          pbVar26 = (byte *)0x704cc;
                          do {
                            if (iVar8 == 0) break;
                            iVar8 = iVar8 + -1;
                            bVar29 = *pbVar23 < *pbVar26;
                            bVar30 = *pbVar23 == *pbVar26;
                            pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;
                            pbVar26 = pbVar26 + (uint)bVar31 * -2 + 1;
                          } while (bVar30);
                          bVar28 = false;
                          bVar29 = (!bVar29 && !bVar30) == bVar29;
                          if (!bVar29) {
                            iVar8 = 7;
                            pbVar23 = (byte *)"RIGIN}";
                            do {
                              if (iVar8 == 0) break;
                              iVar8 = iVar8 + -1;
                              bVar28 = *pbVar17 < *pbVar23;
                              bVar29 = *pbVar17 == *pbVar23;
                              pbVar17 = pbVar17 + (uint)bVar31 * -2 + 1;
                              pbVar23 = pbVar23 + (uint)bVar31 * -2 + 1;
                            } while (bVar29);
                            if ((!bVar28 && !bVar29) != bVar28) goto LAB_00040c47;
                          }
                          puVar11 = puVar1;
                          if (((puVar1 != (undefined4 *)0x0) ||
                              (puVar11 = DAT_001c4614, DAT_001c4614 != (undefined4 *)0x0)) &&
                             (pcVar27 = (char *)*puVar11, pcVar27 != (char *)0x0)) {
                            if (*pcVar27 == '/') {
                              pcVar15 = (char *)xstrdup(pcVar27);
                            }
                            else {
                              pcVar12 = (char *)getpwd();
                              sVar13 = strlen(pcVar27);
                              sVar14 = strlen(pcVar12);
                              pcVar15 = (char *)xmalloc(sVar13 + 2 + sVar14);
                              sprintf(pcVar15,"%s/%s",pcVar12,pcVar27);
                            }
                            pcVar27 = strrchr(pcVar15,0x2f);
                            if (pcVar27 != (char *)0x0) {
                              *pcVar27 = '\0';
                            }
                            sVar13 = strlen(pcVar15);
                            pcVar27 = pcVar15;
                            goto LAB_00040b60;
                          }
                        }
LAB_00040c47:
                        if (DAT_001c475c != 0) {
                          uVar9 = dcgettext(0,
                                            "unrecognised or unsupported token \'%s\' in search path\n"
                                            ,5);
                          FUN_00034d90(uVar9,pcVar22);
                        }
                        if (pcVar16 != (char *)0x0) {
                          *pcVar16 = '/';
                        }
                        pcVar27 = (char *)0x0;
                        pcVar22 = pcVar22 + (1 - (int)local_84);
                      }
                      free(pcVar27);
                    }
                    iVar8 = FUN_00040250();
                    if (iVar8 != 0) goto LAB_00040900;
                    free(local_84);
                    if (*local_68 == '\0') break;
                    pcVar22 = local_68 + 1;
                  } while( true );
                }
                sVar10 = strlen((char *)local_78[2]);
                if (DAT_001c4804 != (int *)0x0) {
                  piVar24 = DAT_001c4804;
                  do {
                    if (piVar24[2] == 0) {
                      sVar25 = strlen((char *)piVar24[1]);
                      pcVar22 = (char *)xmalloc(sVar25 + sVar10 + 2);
                      sprintf(pcVar22,"%s/%s",piVar24[1],local_78[2]);
                      iVar8 = FUN_00040250();
                      if (iVar8 != 0) goto LAB_00040900;
                      free(pcVar22);
                    }
                    piVar24 = (int *)*piVar24;
                  } while (piVar24 != (int *)0x0);
                }
                if (bVar3) goto code_r0x00040e73;
                bVar3 = true;
              } while( true );
            }
          }
        }
        goto LAB_00040900;
      }
LAB_00040912:
      if (((DAT_001c45e3 & 0xc0) == 0x80) &&
         (iVar8 = bfd_elf_parse_eh_frame_entries(0,&DAT_001c45e0), iVar8 == 0)) {
        uVar9 = dcgettext(0,"%F%P: failed to parse EH frame entries\n",5);
        FUN_00034dc0(uVar9);
      }
    }
  }
  return;
code_r0x00040e73:
  uVar9 = local_78[1];
  uVar2 = local_78[2];
  uVar18 = dcgettext(0,
                     "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-link)\n"
                     ,5);
  FUN_00034dc0(uVar18,uVar2,uVar9);
LAB_00040900:
  local_78 = (undefined4 *)*local_78;
  if (local_78 == (undefined4 *)0x0) goto LAB_00040912;
  goto LAB_000407c0;
}

