
void pep_dll_generate_implib(def_file *def,char *impfilename,bfd_link_info *info)

{
  byte bVar1;
  bfd_link_hash_table *pbVar2;
  bool bVar3;
  int iVar4;
  byte *pbVar5;
  bfd *parent;
  bfd *pbVar6;
  bfd *pbVar7;
  size_t sVar8;
  char *pcVar9;
  def_file_export *pdVar10;
  long lVar11;
  bfd *pbVar12;
  bfd *pbVar13;
  char *pcVar14;
  exclude_list_struct *peVar15;
  char *pcVar16;
  bfd *pbVar17;
  long lVar18;
  bool bVar19;
  
  dll_filename = def->name;
  if (def->name == (char *)0x0) {
    dll_filename = dll_name;
  }
  pbVar5 = (byte *)xstrdup();
  bVar1 = *pbVar5;
  dll_symname = (char *)pbVar5;
  while (bVar1 != 0) {
    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {
      *pbVar5 = 0x5f;
    }
    pbVar5 = pbVar5 + 1;
    bVar1 = *pbVar5;
  }
  unlink_if_ordinary(impfilename);
  parent = (bfd *)bfd_openw(impfilename,0);
  if (parent == (bfd *)0x0) {
    pcVar14 = (char *)dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);
LAB_00150d81:
    einfo(pcVar14,impfilename);
    return;
  }
  if (verbose != 0) {
    pcVar14 = (char *)dcgettext(0,"Creating library file: %s\n",5);
    info_msg(pcVar14,impfilename);
  }
  bfd_set_format(parent,2);
  parent->field_0x47 = parent->field_0x47 | 0x80;
  pbVar6 = make_head(parent);
  pbVar17 = (bfd *)0x0;
  peVar15 = excludes;
  for (pbVar12 = info->input_bfds; excludes = peVar15, pbVar12 != (bfd *)0x0;
      pbVar12 = (pbVar12->link).next) {
    pbVar13 = pbVar17;
    if (peVar15 != (exclude_list_struct *)0x0) {
      do {
        bVar19 = false;
        bVar3 = true;
        if (peVar15->type == EXCLUDEFORIMPLIB) {
          iVar4 = filename_cmp(peVar15->string,pbVar12->filename);
          bVar19 = iVar4 == 0;
          bVar3 = !bVar19;
        }
        peVar15 = peVar15->next;
      } while ((peVar15 != (exclude_list_struct *)0x0) && (bVar3));
      if (bVar19) {
        pbVar13 = pbVar12->my_archive;
        if (pbVar12->my_archive == (bfd *)0x0) {
          pbVar13 = pbVar12;
        }
        pbVar7 = (bfd *)bfd_openr(pbVar13->filename,0);
        if (pbVar7 == (bfd *)0x0) {
          impfilename = pbVar12->filename;
          pcVar14 = (char *)dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);
          goto LAB_00150d81;
        }
        pbVar13 = pbVar7;
        if (pbVar12->my_archive != (bfd *)0x0) {
          iVar4 = bfd_check_format_matches(pbVar7,2,0);
          if (iVar4 == 0) {
            pcVar14 = pbVar12->filename;
            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";
            pcVar9 = pbVar12->my_archive->filename;
LAB_00150d14:
            pcVar16 = (char *)dcgettext(0,pcVar16,5);
            einfo(pcVar16,pcVar9,pcVar14);
            return;
          }
          pbVar13 = (bfd *)0x0;
          do {
            pbVar13 = (bfd *)bfd_openr_next_archived_file(pbVar7,pbVar13);
            if (pbVar13 == (bfd *)0x0) {
              pcVar14 = pbVar12->filename;
              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";
              pcVar9 = pbVar12->my_archive->filename;
              goto LAB_00150d14;
            }
            iVar4 = filename_cmp(pbVar13->filename);
          } while (iVar4 != 0);
        }
        pbVar13->archive_next = pbVar17;
      }
    }
    pbVar17 = pbVar13;
    peVar15 = excludes;
  }
  if (0 < def->num_exports) {
    lVar18 = 0;
    do {
      if (pep_def_file->exports[lVar18].flag_private == '\0') {
        pbVar2 = info->hash;
        pdVar10 = def->exports + lVar18;
        pcVar14 = pdVar10->internal_name;
        pdVar10->internal_name = pdVar10->name;
        lVar11 = bfd_link_hash_lookup(pbVar2,pcVar14,0,0,0);
        if (((lVar11 == 0) || (*(char *)(lVar11 + 0x42) != 'j')) ||
           (*(long *)(lVar11 + 0x28) != 0x2b4598)) {
          if ((pep_details->underscored != 0) && (*pcVar14 != '@')) {
            sVar8 = strlen(pcVar14);
            pcVar9 = (char *)xmalloc(sVar8 + 2);
            sprintf(pcVar9,"_%s",pcVar14);
            lVar11 = bfd_link_hash_lookup(info->hash,pcVar9,0,0,0);
            free(pcVar9);
            if ((lVar11 != 0) &&
               ((*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598))))
            goto LAB_00150bcd;
          }
          pbVar12 = make_one(def->exports + lVar18,parent,
                             (uint)(def->exports[lVar18].flag_data == '\0'));
          pdVar10 = def->exports;
          pbVar12->archive_next = pbVar17;
          pdVar10[lVar18].internal_name = pcVar14;
          pbVar17 = pbVar12;
        }
      }
LAB_00150bcd:
      lVar18 = lVar18 + 1;
    } while ((int)lVar18 < def->num_exports);
  }
  pbVar12 = make_tail(parent);
  if ((pbVar6 != (bfd *)0x0) && (pbVar12 != (bfd *)0x0)) {
    pbVar6->archive_next = pbVar17;
    pbVar12->archive_next = pbVar6;
    iVar4 = bfd_set_archive_head(parent,pbVar12);
    if (iVar4 == 0) {
      einfo("%X%P: bfd_set_archive_head: %E\n");
    }
    iVar4 = bfd_close(parent);
    if (iVar4 == 0) {
      einfo("%X%P: bfd_close %s: %E\n",impfilename);
    }
    do {
      pbVar12 = pbVar12->archive_next;
      bfd_close();
    } while (pbVar12 != (bfd *)0x0);
  }
  return;
}



void FUN_001509a0(long *param_1,undefined8 param_2,long param_3)

{
  byte bVar1;
  bool bVar2;
  int iVar3;
  byte *pbVar4;
  long lVar5;
  long lVar6;
  undefined8 *puVar7;
  size_t sVar8;
  char *__s;
  undefined8 *puVar9;
  long lVar10;
  undefined8 *puVar11;
  undefined8 uVar12;
  undefined8 uVar13;
  long lVar14;
  undefined8 uVar15;
  char *pcVar16;
  undefined8 *puVar17;
  long lVar18;
  bool bVar19;
  
  DAT_002b5b30 = *param_1;
  if (*param_1 == 0) {
    DAT_002b5b30 = DAT_002b5b68;
  }
  pbVar4 = (byte *)xstrdup();
  bVar1 = *pbVar4;
  DAT_002b5b28 = pbVar4;
  while (bVar1 != 0) {
    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {
      *pbVar4 = 0x5f;
    }
    pbVar4 = pbVar4 + 1;
    bVar1 = *pbVar4;
  }
  unlink_if_ordinary(param_2);
  lVar5 = bfd_openw(param_2,0);
  if (lVar5 == 0) {
    uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);
LAB_00150d81:
    FUN_00129380(uVar13,param_2);
    return;
  }
  if (DAT_002b6158 != 0) {
    uVar13 = dcgettext(0,"Creating library file: %s\n",5);
    FUN_001292e0(uVar13,param_2);
  }
  bfd_set_format(lVar5,2);
  *(byte *)(lVar5 + 0x47) = *(byte *)(lVar5 + 0x47) | 0x80;
  lVar6 = FUN_0014eb10(lVar5);
  puVar17 = (undefined8 *)0x0;
  puVar7 = DAT_002b5b50;
  for (puVar9 = *(undefined8 **)(param_3 + 0x60); DAT_002b5b50 = puVar7, puVar9 != (undefined8 *)0x0
      ; puVar9 = (undefined8 *)puVar9[0x1e]) {
    puVar11 = puVar17;
    if (puVar7 != (undefined8 *)0x0) {
      do {
        bVar19 = false;
        bVar2 = true;
        if (*(int *)(puVar7 + 2) == 2) {
          iVar3 = filename_cmp(*puVar7,*puVar9);
          bVar19 = iVar3 == 0;
          bVar2 = !bVar19;
        }
        puVar7 = (undefined8 *)puVar7[1];
      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));
      if (bVar19) {
        puVar7 = (undefined8 *)puVar9[0x1a];
        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {
          puVar7 = puVar9;
        }
        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);
        if (puVar7 == (undefined8 *)0x0) {
          param_2 = *puVar9;
          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);
          goto LAB_00150d81;
        }
        puVar11 = puVar7;
        if (puVar9[0x1a] != 0) {
          iVar3 = bfd_check_format_matches(puVar7,2,0);
          if (iVar3 == 0) {
            uVar13 = *puVar9;
            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";
            uVar15 = *(undefined8 *)puVar9[0x1a];
LAB_00150d14:
            uVar12 = dcgettext(0,pcVar16,5);
            FUN_00129380(uVar12,uVar15,uVar13);
            return;
          }
          puVar11 = (undefined8 *)0x0;
          do {
            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);
            if (puVar11 == (undefined8 *)0x0) {
              uVar13 = *puVar9;
              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";
              uVar15 = *(undefined8 *)puVar9[0x1a];
              goto LAB_00150d14;
            }
            iVar3 = filename_cmp(*puVar11);
          } while (iVar3 != 0);
        }
        puVar11[0x1b] = puVar17;
      }
    }
    puVar17 = puVar11;
    puVar7 = DAT_002b5b50;
  }
  if (0 < (int)param_1[8]) {
    lVar18 = 0;
    do {
      lVar14 = lVar18 * 0x28;
      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {
        uVar13 = *(undefined8 *)(param_3 + 0x28);
        puVar9 = (undefined8 *)(param_1[9] + lVar14);
        pcVar16 = (char *)puVar9[1];
        puVar9[1] = *puVar9;
        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);
        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||
           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {
          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {
            sVar8 = strlen(pcVar16);
            __s = (char *)xmalloc(sVar8 + 2);
            sprintf(__s,"_%s",pcVar16);
            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);
            free(__s);
            if ((lVar10 != 0) &&
               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))
            goto LAB_00150bcd;
          }
          puVar9 = (undefined8 *)
                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,
                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');
          lVar10 = param_1[9];
          puVar9[0x1b] = puVar17;
          *(char **)(lVar10 + 8 + lVar14) = pcVar16;
          puVar17 = puVar9;
        }
      }
LAB_00150bcd:
      lVar18 = lVar18 + 1;
    } while ((int)lVar18 < (int)param_1[8]);
  }
  lVar18 = FUN_0014ee50(lVar5);
  if ((lVar6 != 0) && (lVar18 != 0)) {
    *(undefined8 **)(lVar6 + 0xd8) = puVar17;
    *(long *)(lVar18 + 0xd8) = lVar6;
    iVar3 = bfd_set_archive_head(lVar5,lVar18);
    if (iVar3 == 0) {
      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");
    }
    iVar3 = bfd_close(lVar5);
    if (iVar3 == 0) {
      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);
    }
    do {
      lVar18 = *(long *)(lVar18 + 0xd8);
      bfd_close();
    } while (lVar18 != 0);
  }
  return;
}


PUSH R15
PUSH R14
PUSH R13
MOV R13,RDI
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x38
MOV RDI,qword ptr [RDI]
MOV qword ptr [RSP + 0x18],RDX
TEST RDI,RDI
CMOVZ RDI,qword ptr [0x002b5b68]
MOV qword ptr [RSP + 0x8],RSI
MOV qword ptr [0x002b5b30],RDI
CALL 0x0010d510
LEA RCX,[0x2b1a80]
MOVZX EDX,byte ptr [RAX]
MOV qword ptr [0x002b5b28],RAX
TEST DL,DL
JZ 0x00150a04
NOP word ptr [RAX + RAX*0x1]
TEST byte ptr [RCX + RDX*0x2],0x8c
JNZ 0x001509f9
MOV byte ptr [RAX],0x5f
ADD RAX,0x1
MOVZX EDX,byte ptr [RAX]
TEST DL,DL
JNZ 0x001509f0
MOV RBX,qword ptr [RSP + 0x8]
MOV RDI,RBX
CALL 0x0010d880
XOR ESI,ESI
MOV RDI,RBX
CALL 0x0010d990
MOV R14,RAX
TEST RAX,RAX
JZ 0x00150dd9
MOV ECX,dword ptr [0x002b6158]
TEST ECX,ECX
JNZ 0x00150d41
MOV ESI,0x2
MOV RDI,R14
XOR R12D,R12D
CALL 0x0010d700
OR byte ptr [R14 + 0x47],0x80
MOV RDI,R14
CALL 0x0014eb10
MOV qword ptr [RSP + 0x20],RAX
MOV RAX,qword ptr [RSP + 0x18]
MOV RBX,qword ptr [RAX + 0x60]
TEST RBX,RBX
JZ 0x00150afe
NOP dword ptr [RAX]
MOV RBP,qword ptr [0x002b5b50]
TEST RBP,RBP
JZ 0x00150aee
NOP dword ptr [RAX]
XOR EDX,EDX
CMP dword ptr [RBP + 0x10],0x2
MOV EAX,0x1
JNZ 0x00150aa1
MOV RSI,qword ptr [RBX]
MOV RDI,qword ptr [RBP]
CALL 0x0010d260
TEST EAX,EAX
SETZ DL
SETNZ AL
MOV RBP,qword ptr [RBP + 0x8]
TEST RBP,RBP
JZ 0x00150aae
TEST AL,AL
JNZ 0x00150a80
TEST DL,DL
JZ 0x00150aee
MOV RAX,qword ptr [RBX + 0xd0]
TEST RAX,RAX
CMOVZ RAX,RBX
XOR ESI,ESI
MOV RDI,qword ptr [RAX]
CALL 0x0010d2b0
MOV R15,RAX
TEST RAX,RAX
JZ 0x00150d68
CMP qword ptr [RBX + 0xd0],0x0
JNZ 0x00150cb8
MOV qword ptr [R15 + 0xd8],R12
MOV R12,R15
MOV RBX,qword ptr [RBX + 0xf0]
TEST RBX,RBX
JNZ 0x00150a70
MOV EDX,dword ptr [R13 + 0x40]
TEST EDX,EDX
JLE 0x00150c41
XOR EBP,EBP
MOV qword ptr [RSP + 0x10],R14
MOV R14,RBP
MOV RBP,qword ptr [RSP + 0x18]
JMP 0x00150bd7
MOV RAX,qword ptr [0x002b5b90]
MOV EAX,dword ptr [RAX + 0x1c]
TEST EAX,EAX
JZ 0x00150ba0
CMP byte ptr [R15],0x40
JZ 0x00150ba0
MOV RDI,R15
CALL 0x0010d330
LEA RDI,[RAX + 0x2]
CALL 0x0010dda0
MOV RDX,R15
LEA RSI,[0x16c32c]
MOV RDI,RAX
MOV qword ptr [RSP + 0x18],RAX
XOR EAX,EAX
CALL 0x0010dbc0
MOV RDI,qword ptr [RBP + 0x28]
MOV RSI,qword ptr [RSP + 0x18]
XOR ECX,ECX
XOR R8D,R8D
XOR EDX,EDX
CALL 0x0010d5e0
MOV RDI,qword ptr [RSP + 0x18]
MOV qword ptr [RSP + 0x28],RAX
CALL 0x0010dd90
MOV RAX,qword ptr [RSP + 0x28]
TEST RAX,RAX
JZ 0x00150ba0
CMP byte ptr [RAX + 0x42],0x6a
JZ 0x00150dc3
NOP word ptr CS:[RAX + RAX*0x1]
MOV RDI,qword ptr [R13 + 0x48]
XOR EDX,EDX
MOV RSI,qword ptr [RSP + 0x10]
ADD RDI,RBX
CMP byte ptr [RDI + 0x23],0x0
SETZ DL
CALL 0x0014e2a0
MOV RDX,qword ptr [R13 + 0x48]
MOV qword ptr [RAX + 0xd8],R12
MOV R12,RAX
MOV qword ptr [RDX + RBX*0x1 + 0x8],R15
ADD R14,0x1
CMP dword ptr [R13 + 0x40],R14D
JLE 0x00150c3c
MOV RAX,qword ptr [0x002b5af8]
LEA RBX,[R14 + R14*0x4]
SHL RBX,0x3
MOV RAX,qword ptr [RAX + 0x48]
CMP byte ptr [RAX + RBX*0x1 + 0x20],0x0
JNZ 0x00150bcd
MOV RAX,qword ptr [R13 + 0x48]
MOV RDI,qword ptr [RBP + 0x28]
XOR R8D,R8D
XOR ECX,ECX
ADD RAX,RBX
MOV RDX,qword ptr [RAX]
MOV R15,qword ptr [RAX + 0x8]
MOV qword ptr [RAX + 0x8],RDX
MOV RSI,R15
XOR EDX,EDX
CALL 0x0010d5e0
TEST RAX,RAX
JZ 0x00150b20
CMP byte ptr [RAX + 0x42],0x6a
JNZ 0x00150b20
LEA RCX,[0x2b4598]
CMP qword ptr [RAX + 0x28],RCX
JNZ 0x00150b20
JMP 0x00150bcd
MOV R14,qword ptr [RSP + 0x10]
MOV RDI,R14
CALL 0x0014ee50
MOV RBX,RAX
MOV RAX,qword ptr [RSP + 0x20]
TEST RAX,RAX
JZ 0x00150ca4
TEST RBX,RBX
JZ 0x00150ca4
MOV qword ptr [RAX + 0xd8],R12
MOV RSI,RBX
MOV RDI,R14
MOV qword ptr [RBX + 0xd8],RAX
CALL 0x0010d240
TEST EAX,EAX
JZ 0x00150db2
MOV RDI,R14
CALL 0x0010da80
MOV RDI,RBX
TEST EAX,EAX
JZ 0x00150d99
NOP
MOV RBX,qword ptr [RDI + 0xd8]
CALL 0x0010da80
MOV RDI,RBX
TEST RBX,RBX
JNZ 0x00150c90
ADD RSP,0x38
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
XOR EDX,EDX
MOV ESI,0x2
MOV RDI,RAX
CALL 0x0010dad0
TEST EAX,EAX
JZ 0x00150df3
XOR EBP,EBP
JMP 0x00150ce8
MOV RSI,qword ptr [RBX]
MOV RDI,qword ptr [RBP]
CALL 0x0010d260
TEST EAX,EAX
JZ 0x00150d39
MOV RSI,RBP
MOV RDI,R15
CALL 0x0010dc00
MOV RBP,RAX
TEST RAX,RAX
JNZ 0x00150cd8
MOV RAX,qword ptr [RBX + 0xd0]
MOV RBP,qword ptr [RBX]
MOV EDX,0x5
LEA RSI,[0x29fa08]
MOV RBX,qword ptr [RAX]
XOR EDI,EDI
CALL 0x0010d300
ADD RSP,0x38
MOV RDX,RBP
MOV RSI,RBX
MOV RDI,RAX
POP RBX
XOR EAX,EAX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP 0x00129380
MOV R15,RBP
JMP 0x00150ae4
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x29f383]
CALL 0x0010d300
MOV RSI,qword ptr [RSP + 0x8]
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001292e0
JMP 0x00150a35
MOV RBX,qword ptr [RBX]
LEA RSI,[0x29f39e]
MOV EDX,0x5
XOR EDI,EDI
CALL 0x0010d300
MOV RSI,RBX
ADD RSP,0x38
MOV RDI,RAX
XOR EAX,EAX
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP 0x00129380
MOV RSI,qword ptr [RSP + 0x8]
LEA RDI,[0x29f3b6]
CALL 0x00129380
MOV RDI,RBX
JMP 0x00150c90
LEA RDI,[0x29f9e8]
CALL 0x00129380
JMP 0x00150c7c
LEA RCX,[0x2b4598]
CMP qword ptr [RAX + 0x28],RCX
JNZ 0x00150ba0
JMP 0x00150bcd
LEA RSI,[0x29f990]
MOV EDX,0x5
XOR EDI,EDI
CALL 0x0010d300
MOV RSI,qword ptr [RSP + 0x8]
JMP 0x00150d81
MOV RAX,qword ptr [RBX + 0xd0]
MOV RBP,qword ptr [RBX]
MOV EDX,0x5
LEA RSI,[0x29f9b0]
MOV RBX,qword ptr [RAX]
JMP 0x00150d14
(translation_unit "void FUN_001509a0(long *param_1,undefined8 param_2,long param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  int iVar3;\n  byte *pbVar4;\n  long lVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  size_t sVar8;\n  char *__s;\n  undefined8 *puVar9;\n  long lVar10;\n  undefined8 *puVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  long lVar14;\n  undefined8 uVar15;\n  char *pcVar16;\n  undefined8 *puVar17;\n  long lVar18;\n  bool bVar19;\n  \n  DAT_002b5b30 = *param_1;\n  if (*param_1 == 0) {\n    DAT_002b5b30 = DAT_002b5b68;\n  }\n  pbVar4 = (byte *)xstrdup();\n  bVar1 = *pbVar4;\n  DAT_002b5b28 = pbVar4;\n  while (bVar1 != 0) {\n    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar4 = 0x5f;\n    }\n    pbVar4 = pbVar4 + 1;\n    bVar1 = *pbVar4;\n  }\n  unlink_if_ordinary(param_2);\n  lVar5 = bfd_openw(param_2,0);\n  if (lVar5 == 0) {\n    uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);\nLAB_00150d81:\n    FUN_00129380(uVar13,param_2);\n    return;\n  }\n  if (DAT_002b6158 != 0) {\n    uVar13 = dcgettext(0,"Creating library file: %s\n",5);\n    FUN_001292e0(uVar13,param_2);\n  }\n  bfd_set_format(lVar5,2);\n  *(byte *)(lVar5 + 0x47) = *(byte *)(lVar5 + 0x47) | 0x80;\n  lVar6 = FUN_0014eb10(lVar5);\n  puVar17 = (undefined8 *)0x0;\n  puVar7 = DAT_002b5b50;\n  for (puVar9 = *(undefined8 **)(param_3 + 0x60); DAT_002b5b50 = puVar7, puVar9 != (undefined8 *)0x0\n      ; puVar9 = (undefined8 *)puVar9[0x1e]) {\n    puVar11 = puVar17;\n    if (puVar7 != (undefined8 *)0x0) {\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }\n    puVar17 = puVar11;\n    puVar7 = DAT_002b5b50;\n  }\n  if (0 < (int)param_1[8]) {\n    lVar18 = 0;\n    do {\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < (int)param_1[8]);\n  }\n  lVar18 = FUN_0014ee50(lVar5);\n  if ((lVar6 != 0) && (lVar18 != 0)) {\n    *(undefined8 **)(lVar6 + 0xd8) = puVar17;\n    *(long *)(lVar18 + 0xd8) = lVar6;\n    iVar3 = bfd_set_archive_head(lVar5,lVar18);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }\n    iVar3 = bfd_close(lVar5);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }\n    do {\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    } while (lVar18 != 0);\n  }\n  return;\n}\n\n" (function_definition "void FUN_001509a0(long *param_1,undefined8 param_2,long param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  int iVar3;\n  byte *pbVar4;\n  long lVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  size_t sVar8;\n  char *__s;\n  undefined8 *puVar9;\n  long lVar10;\n  undefined8 *puVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  long lVar14;\n  undefined8 uVar15;\n  char *pcVar16;\n  undefined8 *puVar17;\n  long lVar18;\n  bool bVar19;\n  \n  DAT_002b5b30 = *param_1;\n  if (*param_1 == 0) {\n    DAT_002b5b30 = DAT_002b5b68;\n  }\n  pbVar4 = (byte *)xstrdup();\n  bVar1 = *pbVar4;\n  DAT_002b5b28 = pbVar4;\n  while (bVar1 != 0) {\n    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar4 = 0x5f;\n    }\n    pbVar4 = pbVar4 + 1;\n    bVar1 = *pbVar4;\n  }\n  unlink_if_ordinary(param_2);\n  lVar5 = bfd_openw(param_2,0);\n  if (lVar5 == 0) {\n    uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);\nLAB_00150d81:\n    FUN_00129380(uVar13,param_2);\n    return;\n  }\n  if (DAT_002b6158 != 0) {\n    uVar13 = dcgettext(0,"Creating library file: %s\n",5);\n    FUN_001292e0(uVar13,param_2);\n  }\n  bfd_set_format(lVar5,2);\n  *(byte *)(lVar5 + 0x47) = *(byte *)(lVar5 + 0x47) | 0x80;\n  lVar6 = FUN_0014eb10(lVar5);\n  puVar17 = (undefined8 *)0x0;\n  puVar7 = DAT_002b5b50;\n  for (puVar9 = *(undefined8 **)(param_3 + 0x60); DAT_002b5b50 = puVar7, puVar9 != (undefined8 *)0x0\n      ; puVar9 = (undefined8 *)puVar9[0x1e]) {\n    puVar11 = puVar17;\n    if (puVar7 != (undefined8 *)0x0) {\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }\n    puVar17 = puVar11;\n    puVar7 = DAT_002b5b50;\n  }\n  if (0 < (int)param_1[8]) {\n    lVar18 = 0;\n    do {\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < (int)param_1[8]);\n  }\n  lVar18 = FUN_0014ee50(lVar5);\n  if ((lVar6 != 0) && (lVar18 != 0)) {\n    *(undefined8 **)(lVar6 + 0xd8) = puVar17;\n    *(long *)(lVar18 + 0xd8) = lVar6;\n    iVar3 = bfd_set_archive_head(lVar5,lVar18);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }\n    iVar3 = bfd_close(lVar5);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }\n    do {\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    } while (lVar18 != 0);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001509a0(long *param_1,undefined8 param_2,long param_3)" identifier (parameter_list "(long *param_1,undefined8 param_2,long param_3)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  int iVar3;\n  byte *pbVar4;\n  long lVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  size_t sVar8;\n  char *__s;\n  undefined8 *puVar9;\n  long lVar10;\n  undefined8 *puVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  long lVar14;\n  undefined8 uVar15;\n  char *pcVar16;\n  undefined8 *puVar17;\n  long lVar18;\n  bool bVar19;\n  \n  DAT_002b5b30 = *param_1;\n  if (*param_1 == 0) {\n    DAT_002b5b30 = DAT_002b5b68;\n  }\n  pbVar4 = (byte *)xstrdup();\n  bVar1 = *pbVar4;\n  DAT_002b5b28 = pbVar4;\n  while (bVar1 != 0) {\n    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar4 = 0x5f;\n    }\n    pbVar4 = pbVar4 + 1;\n    bVar1 = *pbVar4;\n  }\n  unlink_if_ordinary(param_2);\n  lVar5 = bfd_openw(param_2,0);\n  if (lVar5 == 0) {\n    uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);\nLAB_00150d81:\n    FUN_00129380(uVar13,param_2);\n    return;\n  }\n  if (DAT_002b6158 != 0) {\n    uVar13 = dcgettext(0,"Creating library file: %s\n",5);\n    FUN_001292e0(uVar13,param_2);\n  }\n  bfd_set_format(lVar5,2);\n  *(byte *)(lVar5 + 0x47) = *(byte *)(lVar5 + 0x47) | 0x80;\n  lVar6 = FUN_0014eb10(lVar5);\n  puVar17 = (undefined8 *)0x0;\n  puVar7 = DAT_002b5b50;\n  for (puVar9 = *(undefined8 **)(param_3 + 0x60); DAT_002b5b50 = puVar7, puVar9 != (undefined8 *)0x0\n      ; puVar9 = (undefined8 *)puVar9[0x1e]) {\n    puVar11 = puVar17;\n    if (puVar7 != (undefined8 *)0x0) {\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }\n    puVar17 = puVar11;\n    puVar7 = DAT_002b5b50;\n  }\n  if (0 < (int)param_1[8]) {\n    lVar18 = 0;\n    do {\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < (int)param_1[8]);\n  }\n  lVar18 = FUN_0014ee50(lVar5);\n  if ((lVar6 != 0) && (lVar18 != 0)) {\n    *(undefined8 **)(lVar6 + 0xd8) = puVar17;\n    *(long *)(lVar18 + 0xd8) = lVar6;\n    iVar3 = bfd_set_archive_head(lVar5,lVar18);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }\n    iVar3 = bfd_close(lVar5);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }\n    do {\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    } while (lVar18 != 0);\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "undefined8 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar15;" type_identifier identifier ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "undefined8 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar19;" primitive_type identifier ;) (expression_statement "DAT_002b5b30 = *param_1;" (assignment_expression "DAT_002b5b30 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*param_1 == 0) {\n    DAT_002b5b30 = DAT_002b5b68;\n  }" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n    DAT_002b5b30 = DAT_002b5b68;\n  }" { (expression_statement "DAT_002b5b30 = DAT_002b5b68;" (assignment_expression "DAT_002b5b30 = DAT_002b5b68" identifier = identifier) ;) })) (expression_statement "pbVar4 = (byte *)xstrdup();" (assignment_expression "pbVar4 = (byte *)xstrdup()" identifier = (cast_expression "(byte *)xstrdup()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar1 = *pbVar4;" (assignment_expression "bVar1 = *pbVar4" identifier = (pointer_expression "*pbVar4" * identifier)) ;) (expression_statement "DAT_002b5b28 = pbVar4;" (assignment_expression "DAT_002b5b28 = pbVar4" identifier = identifier) ;) (while_statement "while (bVar1 != 0) {\n    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar4 = 0x5f;\n    }\n    pbVar4 = pbVar4 + 1;\n    bVar1 = *pbVar4;\n  }" while (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar4 = 0x5f;\n    }\n    pbVar4 = pbVar4 + 1;\n    bVar1 = *pbVar4;\n  }" { (if_statement "if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar4 = 0x5f;\n    }" if (parenthesized_expression "((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0)" ( (binary_expression "(_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar1 * 2] & 0x8c)" ( (binary_expression "_sch_istable[(ulong)bVar1 * 2] & 0x8c" (subscript_expression "_sch_istable[(ulong)bVar1 * 2]" identifier [ (binary_expression "(ulong)bVar1 * 2" (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      *pbVar4 = 0x5f;\n    }" { (expression_statement "*pbVar4 = 0x5f;" (assignment_expression "*pbVar4 = 0x5f" (pointer_expression "*pbVar4" * identifier) = number_literal) ;) })) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *pbVar4;" (assignment_expression "bVar1 = *pbVar4" identifier = (pointer_expression "*pbVar4" * identifier)) ;) })) (expression_statement "unlink_if_ordinary(param_2);" (call_expression "unlink_if_ordinary(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "lVar5 = bfd_openw(param_2,0);" (assignment_expression "lVar5 = bfd_openw(param_2,0)" identifier = (call_expression "bfd_openw(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal )))) ;) (if_statement "if (lVar5 == 0) {\n    uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);\nLAB_00150d81:\n    FUN_00129380(uVar13,param_2);\n    return;\n  }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);\nLAB_00150d81:\n    FUN_00129380(uVar13,param_2);\n    return;\n  }" { (expression_statement "uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);" (assignment_expression "uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5)" identifier (argument_list "(0,"%X%P: can\'t open .lib file: %s\n",5)" ( number_literal , (string_literal ""%X%P: can\'t open .lib file: %s\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (labeled_statement "LAB_00150d81:\n    FUN_00129380(uVar13,param_2);" statement_identifier : (expression_statement "FUN_00129380(uVar13,param_2);" (call_expression "FUN_00129380(uVar13,param_2)" identifier (argument_list "(uVar13,param_2)" ( identifier , identifier ))) ;)) (return_statement "return;" return ;) })) (if_statement "if (DAT_002b6158 != 0) {\n    uVar13 = dcgettext(0,"Creating library file: %s\n",5);\n    FUN_001292e0(uVar13,param_2);\n  }" if (parenthesized_expression "(DAT_002b6158 != 0)" ( (binary_expression "DAT_002b6158 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar13 = dcgettext(0,"Creating library file: %s\n",5);\n    FUN_001292e0(uVar13,param_2);\n  }" { (expression_statement "uVar13 = dcgettext(0,"Creating library file: %s\n",5);" (assignment_expression "uVar13 = dcgettext(0,"Creating library file: %s\n",5)" identifier = (call_expression "dcgettext(0,"Creating library file: %s\n",5)" identifier (argument_list "(0,"Creating library file: %s\n",5)" ( number_literal , (string_literal ""Creating library file: %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_001292e0(uVar13,param_2);" (call_expression "FUN_001292e0(uVar13,param_2)" identifier (argument_list "(uVar13,param_2)" ( identifier , identifier ))) ;) })) (expression_statement "bfd_set_format(lVar5,2);" (call_expression "bfd_set_format(lVar5,2)" identifier (argument_list "(lVar5,2)" ( identifier , number_literal ))) ;) (expression_statement "*(byte *)(lVar5 + 0x47) = *(byte *)(lVar5 + 0x47) | 0x80;" (assignment_expression "*(byte *)(lVar5 + 0x47) = *(byte *)(lVar5 + 0x47) | 0x80" (pointer_expression "*(byte *)(lVar5 + 0x47)" * (cast_expression "(byte *)(lVar5 + 0x47)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x47)" ( (binary_expression "lVar5 + 0x47" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar5 + 0x47) | 0x80" (pointer_expression "*(byte *)(lVar5 + 0x47)" * (cast_expression "(byte *)(lVar5 + 0x47)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x47)" ( (binary_expression "lVar5 + 0x47" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "lVar6 = FUN_0014eb10(lVar5);" (assignment_expression "lVar6 = FUN_0014eb10(lVar5)" identifier = (call_expression "FUN_0014eb10(lVar5)" identifier (argument_list "(lVar5)" ( identifier )))) ;) (expression_statement "puVar17 = (undefined8 *)0x0;" (assignment_expression "puVar17 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar7 = DAT_002b5b50;" (assignment_expression "puVar7 = DAT_002b5b50" identifier = identifier) ;) (for_statement "for (puVar9 = *(undefined8 **)(param_3 + 0x60); DAT_002b5b50 = puVar7, puVar9 != (undefined8 *)0x0\n      ; puVar9 = (undefined8 *)puVar9[0x1e]) {\n    puVar11 = puVar17;\n    if (puVar7 != (undefined8 *)0x0) {\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }\n    puVar17 = puVar11;\n    puVar7 = DAT_002b5b50;\n  }" for ( (assignment_expression "puVar9 = *(undefined8 **)(param_3 + 0x60)" identifier = (pointer_expression "*(undefined8 **)(param_3 + 0x60)" * (cast_expression "(undefined8 **)(param_3 + 0x60)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x60)" ( (binary_expression "param_3 + 0x60" identifier + number_literal) ))))) ; (comma_expression "DAT_002b5b50 = puVar7, puVar9 != (undefined8 *)0x0" (assignment_expression "DAT_002b5b50 = puVar7" identifier = identifier) , (binary_expression "puVar9 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar9 = (undefined8 *)puVar9[0x1e]" identifier = (cast_expression "(undefined8 *)puVar9[0x1e]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[0x1e]" identifier [ number_literal ]))) ) (compound_statement "{\n    puVar11 = puVar17;\n    if (puVar7 != (undefined8 *)0x0) {\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }\n    puVar17 = puVar11;\n    puVar7 = DAT_002b5b50;\n  }" { (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (if_statement "if (puVar7 != (undefined8 *)0x0) {\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }" if (parenthesized_expression "(puVar7 != (undefined8 *)0x0)" ( (binary_expression "puVar7 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }" { (do_statement "do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));" do (compound_statement "{\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      }" { (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (if_statement "if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }" if (parenthesized_expression "(*(int *)(puVar7 + 2) == 2)" ( (binary_expression "*(int *)(puVar7 + 2) == 2" (pointer_expression "*(int *)(puVar7 + 2)" * (cast_expression "(int *)(puVar7 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 2)" ( (binary_expression "puVar7 + 2" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }" { (expression_statement "iVar3 = filename_cmp(*puVar7,*puVar9);" (assignment_expression "iVar3 = filename_cmp(*puVar7,*puVar9)" identifier = (call_expression "filename_cmp(*puVar7,*puVar9)" identifier (argument_list "(*puVar7,*puVar9)" ( (pointer_expression "*puVar7" * identifier) , (pointer_expression "*puVar9" * identifier) )))) ;) (expression_statement "bVar19 = iVar3 == 0;" (assignment_expression "bVar19 = iVar3 == 0" identifier = (binary_expression "iVar3 == 0" identifier == number_literal)) ;) (expression_statement "bVar2 = !bVar19;" (assignment_expression "bVar2 = !bVar19" identifier = (unary_expression "!bVar19" ! identifier)) ;) })) (expression_statement "puVar7 = (undefined8 *)puVar7[1];" (assignment_expression "puVar7 = (undefined8 *)puVar7[1]" identifier = (cast_expression "(undefined8 *)puVar7[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "((puVar7 != (undefined8 *)0x0) && (bVar2))" ( (binary_expression "(puVar7 != (undefined8 *)0x0) && (bVar2)" (parenthesized_expression "(puVar7 != (undefined8 *)0x0)" ( (binary_expression "puVar7 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar2)" ( identifier ))) )) ;) (if_statement "if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }" if (parenthesized_expression "(bVar19)" ( identifier )) (compound_statement "{\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }" { (expression_statement "puVar7 = (undefined8 *)puVar9[0x1a];" (assignment_expression "puVar7 = (undefined8 *)puVar9[0x1a]" identifier = (cast_expression "(undefined8 *)puVar9[0x1a]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[0x1a]" identifier [ number_literal ]))) ;) (if_statement "if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }" if (parenthesized_expression "((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)puVar9[0x1a] == (undefined8 *)0x0" (cast_expression "(undefined8 *)puVar9[0x1a]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[0x1a]" identifier [ number_literal ])) == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar7 = puVar9;\n        }" { (expression_statement "puVar7 = puVar9;" (assignment_expression "puVar7 = puVar9" identifier = identifier) ;) })) (expression_statement "puVar7 = (undefined8 *)bfd_openr(*puVar7,0);" (assignment_expression "puVar7 = (undefined8 *)bfd_openr(*puVar7,0)" identifier = (cast_expression "(undefined8 *)bfd_openr(*puVar7,0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_openr(*puVar7,0)" identifier (argument_list "(*puVar7,0)" ( (pointer_expression "*puVar7" * identifier) , number_literal ))))) ;) (if_statement "if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }" if (parenthesized_expression "(puVar7 == (undefined8 *)0x0)" ( (binary_expression "puVar7 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }" { (expression_statement "param_2 = *puVar9;" (assignment_expression "param_2 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);" (assignment_expression "uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: bfd_openr %s: %E\n",5)" identifier (argument_list "(0,"%X%P: bfd_openr %s: %E\n",5)" ( number_literal , (string_literal ""%X%P: bfd_openr %s: %E\n"" " string_content escape_sequence ") , number_literal )))) ;) (goto_statement "goto LAB_00150d81;" goto statement_identifier ;) })) (expression_statement "puVar11 = puVar7;" (assignment_expression "puVar11 = puVar7" identifier = identifier) ;) (if_statement "if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }" if (parenthesized_expression "(puVar9[0x1a] != 0)" ( (binary_expression "puVar9[0x1a] != 0" (subscript_expression "puVar9[0x1a]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }" { (expression_statement "iVar3 = bfd_check_format_matches(puVar7,2,0);" (assignment_expression "iVar3 = bfd_check_format_matches(puVar7,2,0)" identifier = (call_expression "bfd_check_format_matches(puVar7,2,0)" identifier (argument_list "(puVar7,2,0)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }" { (expression_statement "uVar13 = *puVar9;" (assignment_expression "uVar13 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";" (assignment_expression "pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file"" identifier = (string_literal ""%X%P: %s(%s): can\'t find member in non-archive file"" " string_content escape_sequence string_content ")) ;) (expression_statement "uVar15 = *(undefined8 *)puVar9[0x1a];" (assignment_expression "uVar15 = *(undefined8 *)puVar9[0x1a]" identifier = (pointer_expression "*(undefined8 *)puVar9[0x1a]" * (cast_expression "(undefined8 *)puVar9[0x1a]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[0x1a]" identifier [ number_literal ])))) ;) (labeled_statement "LAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);" statement_identifier : (expression_statement "uVar12 = dcgettext(0,pcVar16,5);" (assignment_expression "uVar12 = dcgettext(0,pcVar16,5)" identifier = (call_expression "dcgettext(0,pcVar16,5)" identifier (argument_list "(0,pcVar16,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_00129380(uVar12,uVar15,uVar13);" (call_expression "FUN_00129380(uVar12,uVar15,uVar13)" identifier (argument_list "(uVar12,uVar15,uVar13)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "puVar11 = (undefined8 *)0x0;" (assignment_expression "puVar11 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);" do (compound_statement "{\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          }" { (expression_statement "puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);" (assignment_expression "puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11)" identifier = (cast_expression "(undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_openr_next_archived_file(puVar7,puVar11)" identifier (argument_list "(puVar7,puVar11)" ( identifier , identifier ))))) ;) (if_statement "if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }" if (parenthesized_expression "(puVar11 == (undefined8 *)0x0)" ( (binary_expression "puVar11 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }" { (expression_statement "uVar13 = *puVar9;" (assignment_expression "uVar13 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "pcVar16 = "%X%P: %s(%s): can\'t find member in archive";" (assignment_expression "pcVar16 = "%X%P: %s(%s): can\'t find member in archive"" identifier = (string_literal ""%X%P: %s(%s): can\'t find member in archive"" " string_content escape_sequence string_content ")) ;) (expression_statement "uVar15 = *(undefined8 *)puVar9[0x1a];" (assignment_expression "uVar15 = *(undefined8 *)puVar9[0x1a]" identifier = (pointer_expression "*(undefined8 *)puVar9[0x1a]" * (cast_expression "(undefined8 *)puVar9[0x1a]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[0x1a]" identifier [ number_literal ])))) ;) (goto_statement "goto LAB_00150d14;" goto statement_identifier ;) })) (expression_statement "iVar3 = filename_cmp(*puVar11);" (assignment_expression "iVar3 = filename_cmp(*puVar11)" identifier = (call_expression "filename_cmp(*puVar11)" identifier (argument_list "(*puVar11)" ( (pointer_expression "*puVar11" * identifier) )))) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) })) (expression_statement "puVar11[0x1b] = puVar17;" (assignment_expression "puVar11[0x1b] = puVar17" (subscript_expression "puVar11[0x1b]" identifier [ number_literal ]) = identifier) ;) })) })) (expression_statement "puVar17 = puVar11;" (assignment_expression "puVar17 = puVar11" identifier = identifier) ;) (expression_statement "puVar7 = DAT_002b5b50;" (assignment_expression "puVar7 = DAT_002b5b50" identifier = identifier) ;) })) (if_statement "if (0 < (int)param_1[8]) {\n    lVar18 = 0;\n    do {\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < (int)param_1[8]);\n  }" if (parenthesized_expression "(0 < (int)param_1[8])" ( (binary_expression "0 < (int)param_1[8]" number_literal < (cast_expression "(int)param_1[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) )) (compound_statement "{\n    lVar18 = 0;\n    do {\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < (int)param_1[8]);\n  }" { (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < (int)param_1[8]);" do (compound_statement "{\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    }" { (expression_statement "lVar14 = lVar18 * 0x28;" (assignment_expression "lVar14 = lVar18 * 0x28" identifier = (binary_expression "lVar18 * 0x28" identifier * number_literal)) ;) (if_statement "if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }" if (parenthesized_expression "(*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0')" ( (binary_expression "*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0'" (pointer_expression "*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14)" * (cast_expression "(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14)" ( (binary_expression "*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14" (binary_expression "*(long *)(DAT_002b5af8 + 0x48) + 0x20" (pointer_expression "*(long *)(DAT_002b5af8 + 0x48)" * (cast_expression "(long *)(DAT_002b5af8 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5af8 + 0x48)" ( (binary_expression "DAT_002b5af8 + 0x48" identifier + number_literal) )))) + number_literal) + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }" { (expression_statement "uVar13 = *(undefined8 *)(param_3 + 0x28);" (assignment_expression "uVar13 = *(undefined8 *)(param_3 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(param_3 + 0x28)" * (cast_expression "(undefined8 *)(param_3 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar9 = (undefined8 *)(param_1[9] + lVar14);" (assignment_expression "puVar9 = (undefined8 *)(param_1[9] + lVar14)" identifier = (cast_expression "(undefined8 *)(param_1[9] + lVar14)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[9] + lVar14)" ( (binary_expression "param_1[9] + lVar14" (subscript_expression "param_1[9]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "pcVar16 = (char *)puVar9[1];" (assignment_expression "pcVar16 = (char *)puVar9[1]" identifier = (cast_expression "(char *)puVar9[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar9[1] = *puVar9;" (assignment_expression "puVar9[1] = *puVar9" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);" (assignment_expression "lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(uVar13,pcVar16,0,0,0)" identifier (argument_list "(uVar13,pcVar16,0,0,0)" ( identifier , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }" if (parenthesized_expression "(((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598))" ( (binary_expression "((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)" (parenthesized_expression "((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j'))" ( (binary_expression "(lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')" (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(char *)(lVar10 + 0x42) != 'j')" ( (binary_expression "*(char *)(lVar10 + 0x42) != 'j'" (pointer_expression "*(char *)(lVar10 + 0x42)" * (cast_expression "(char *)(lVar10 + 0x42)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x42)" ( (binary_expression "lVar10 + 0x42" identifier + number_literal) )))) != (char_literal "'j'" ' character ')) ))) )) || (parenthesized_expression "(*(long *)(lVar10 + 0x28) != 0x2b4598)" ( (binary_expression "*(long *)(lVar10 + 0x28) != 0x2b4598" (pointer_expression "*(long *)(lVar10 + 0x28)" * (cast_expression "(long *)(lVar10 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x28)" ( (binary_expression "lVar10 + 0x28" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }" { (if_statement "if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }" if (parenthesized_expression "((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@'))" ( (binary_expression "(*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')" (parenthesized_expression "(*(int *)(DAT_002b5b90 + 0x1c) != 0)" ( (binary_expression "*(int *)(DAT_002b5b90 + 0x1c) != 0" (pointer_expression "*(int *)(DAT_002b5b90 + 0x1c)" * (cast_expression "(int *)(DAT_002b5b90 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5b90 + 0x1c)" ( (binary_expression "DAT_002b5b90 + 0x1c" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*pcVar16 != '@')" ( (binary_expression "*pcVar16 != '@'" (pointer_expression "*pcVar16" * identifier) != (char_literal "'@'" ' character ')) ))) )) (compound_statement "{\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }" { (expression_statement "sVar8 = strlen(pcVar16);" (assignment_expression "sVar8 = strlen(pcVar16)" identifier = (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "__s = (char *)xmalloc(sVar8 + 2);" (assignment_expression "__s = (char *)xmalloc(sVar8 + 2)" identifier = (cast_expression "(char *)xmalloc(sVar8 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar8 + 2)" identifier (argument_list "(sVar8 + 2)" ( (binary_expression "sVar8 + 2" identifier + number_literal) ))))) ;) (expression_statement "sprintf(__s,"_%s",pcVar16);" (call_expression "sprintf(__s,"_%s",pcVar16)" identifier (argument_list "(__s,"_%s",pcVar16)" ( identifier , (string_literal ""_%s"" " string_content ") , identifier ))) ;) (expression_statement "lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);" (assignment_expression "lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x28),__s,0,0,0)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x28)" * (cast_expression "(undefined8 *)(param_3 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) )))) , identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (if_statement "if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;" if (parenthesized_expression "((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))" ( (binary_expression "(lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598)))" (parenthesized_expression "(lVar10 != 0)" ( (binary_expression "lVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598)))" ( (parenthesized_expression "(*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))" ( (binary_expression "*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598)" (binary_expression "*(char *)(lVar10 + 0x42) == 'j'" (pointer_expression "*(char *)(lVar10 + 0x42)" * (cast_expression "(char *)(lVar10 + 0x42)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x42)" ( (binary_expression "lVar10 + 0x42" identifier + number_literal) )))) == (char_literal "'j'" ' character ')) && (parenthesized_expression "(*(long *)(lVar10 + 0x28) == 0x2b4598)" ( (binary_expression "*(long *)(lVar10 + 0x28) == 0x2b4598" (pointer_expression "*(long *)(lVar10 + 0x28)" * (cast_expression "(long *)(lVar10 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x28)" ( (binary_expression "lVar10 + 0x28" identifier + number_literal) )))) == number_literal) ))) )) ))) )) (goto_statement "goto LAB_00150bcd;" goto statement_identifier ;)) })) (expression_statement "puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');" (assignment_expression "puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0')" identifier = (cast_expression "(undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0')" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0')" identifier (argument_list "(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0')" ( (binary_expression "param_1[9] + lVar14" (subscript_expression "param_1[9]" identifier [ number_literal ]) + identifier) , identifier , (binary_expression "*(char *)(param_1[9] + lVar14 + 0x23) == '\0'" (pointer_expression "*(char *)(param_1[9] + lVar14 + 0x23)" * (cast_expression "(char *)(param_1[9] + lVar14 + 0x23)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[9] + lVar14 + 0x23)" ( (binary_expression "param_1[9] + lVar14 + 0x23" (binary_expression "param_1[9] + lVar14" (subscript_expression "param_1[9]" identifier [ number_literal ]) + identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))))) ;) (expression_statement "lVar10 = param_1[9];" (assignment_expression "lVar10 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0x1b] = puVar17;" (assignment_expression "puVar9[0x1b] = puVar17" (subscript_expression "puVar9[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(char **)(lVar10 + 8 + lVar14) = pcVar16;" (assignment_expression "*(char **)(lVar10 + 8 + lVar14) = pcVar16" (pointer_expression "*(char **)(lVar10 + 8 + lVar14)" * (cast_expression "(char **)(lVar10 + 8 + lVar14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + 8 + lVar14)" ( (binary_expression "lVar10 + 8 + lVar14" (binary_expression "lVar10 + 8" identifier + number_literal) + identifier) )))) = identifier) ;) (expression_statement "puVar17 = puVar9;" (assignment_expression "puVar17 = puVar9" identifier = identifier) ;) })) })) (labeled_statement "LAB_00150bcd:\n      lVar18 = lVar18 + 1;" statement_identifier : (expression_statement "lVar18 = lVar18 + 1;" (assignment_expression "lVar18 = lVar18 + 1" identifier = (binary_expression "lVar18 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "((int)lVar18 < (int)param_1[8])" ( (binary_expression "(int)lVar18 < (int)param_1[8]" (cast_expression "(int)lVar18" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_1[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) )) ;) })) (expression_statement "lVar18 = FUN_0014ee50(lVar5);" (assignment_expression "lVar18 = FUN_0014ee50(lVar5)" identifier = (call_expression "FUN_0014ee50(lVar5)" identifier (argument_list "(lVar5)" ( identifier )))) ;) (if_statement "if ((lVar6 != 0) && (lVar18 != 0)) {\n    *(undefined8 **)(lVar6 + 0xd8) = puVar17;\n    *(long *)(lVar18 + 0xd8) = lVar6;\n    iVar3 = bfd_set_archive_head(lVar5,lVar18);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }\n    iVar3 = bfd_close(lVar5);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }\n    do {\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    } while (lVar18 != 0);\n  }" if (parenthesized_expression "((lVar6 != 0) && (lVar18 != 0))" ( (binary_expression "(lVar6 != 0) && (lVar18 != 0)" (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "(lVar18 != 0)" ( (binary_expression "lVar18 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    *(undefined8 **)(lVar6 + 0xd8) = puVar17;\n    *(long *)(lVar18 + 0xd8) = lVar6;\n    iVar3 = bfd_set_archive_head(lVar5,lVar18);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }\n    iVar3 = bfd_close(lVar5);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }\n    do {\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    } while (lVar18 != 0);\n  }" { (expression_statement "*(undefined8 **)(lVar6 + 0xd8) = puVar17;" (assignment_expression "*(undefined8 **)(lVar6 + 0xd8) = puVar17" (pointer_expression "*(undefined8 **)(lVar6 + 0xd8)" * (cast_expression "(undefined8 **)(lVar6 + 0xd8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0xd8)" ( (binary_expression "lVar6 + 0xd8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(long *)(lVar18 + 0xd8) = lVar6;" (assignment_expression "*(long *)(lVar18 + 0xd8) = lVar6" (pointer_expression "*(long *)(lVar18 + 0xd8)" * (cast_expression "(long *)(lVar18 + 0xd8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0xd8)" ( (binary_expression "lVar18 + 0xd8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = bfd_set_archive_head(lVar5,lVar18);" (assignment_expression "iVar3 = bfd_set_archive_head(lVar5,lVar18)" identifier = (call_expression "bfd_set_archive_head(lVar5,lVar18)" identifier (argument_list "(lVar5,lVar18)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }" { (expression_statement "FUN_00129380("%X%P: bfd_set_archive_head: %E\n");" (call_expression "FUN_00129380("%X%P: bfd_set_archive_head: %E\n")" identifier (argument_list "("%X%P: bfd_set_archive_head: %E\n")" ( (string_literal ""%X%P: bfd_set_archive_head: %E\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "iVar3 = bfd_close(lVar5);" (assignment_expression "iVar3 = bfd_close(lVar5)" identifier = (call_expression "bfd_close(lVar5)" identifier (argument_list "(lVar5)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }" { (expression_statement "FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);" (call_expression "FUN_00129380("%X%P: bfd_close %s: %E\n",param_2)" identifier (argument_list "("%X%P: bfd_close %s: %E\n",param_2)" ( (string_literal ""%X%P: bfd_close %s: %E\n"" " string_content escape_sequence ") , identifier ))) ;) })) (do_statement "do {\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    } while (lVar18 != 0);" do (compound_statement "{\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    }" { (expression_statement "lVar18 = *(long *)(lVar18 + 0xd8);" (assignment_expression "lVar18 = *(long *)(lVar18 + 0xd8)" identifier = (pointer_expression "*(long *)(lVar18 + 0xd8)" * (cast_expression "(long *)(lVar18 + 0xd8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0xd8)" ( (binary_expression "lVar18 + 0xd8" identifier + number_literal) ))))) ;) (expression_statement "bfd_close();" (call_expression "bfd_close()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(lVar18 != 0)" ( (binary_expression "lVar18 != 0" identifier != number_literal) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void pep_dll_generate_implib(def_file *def,char *impfilename,bfd_link_info *info)\n\n{\n  byte bVar1;\n  bfd_link_hash_table *pbVar2;\n  bool bVar3;\n  int iVar4;\n  byte *pbVar5;\n  bfd *parent;\n  bfd *pbVar6;\n  bfd *pbVar7;\n  size_t sVar8;\n  char *pcVar9;\n  def_file_export *pdVar10;\n  long lVar11;\n  bfd *pbVar12;\n  bfd *pbVar13;\n  char *pcVar14;\n  exclude_list_struct *peVar15;\n  char *pcVar16;\n  bfd *pbVar17;\n  long lVar18;\n  bool bVar19;\n  \n  dll_filename = def->name;\n  if (def->name == (char *)0x0) {\n    dll_filename = dll_name;\n  }\n  pbVar5 = (byte *)xstrdup();\n  bVar1 = *pbVar5;\n  dll_symname = (char *)pbVar5;\n  while (bVar1 != 0) {\n    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar5 = 0x5f;\n    }\n    pbVar5 = pbVar5 + 1;\n    bVar1 = *pbVar5;\n  }\n  unlink_if_ordinary(impfilename);\n  parent = (bfd *)bfd_openw(impfilename,0);\n  if (parent == (bfd *)0x0) {\n    pcVar14 = (char *)dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);\nLAB_00150d81:\n    einfo(pcVar14,impfilename);\n    return;\n  }\n  if (verbose != 0) {\n    pcVar14 = (char *)dcgettext(0,"Creating library file: %s\n",5);\n    info_msg(pcVar14,impfilename);\n  }\n  bfd_set_format(parent,2);\n  parent->field_0x47 = parent->field_0x47 | 0x80;\n  pbVar6 = make_head(parent);\n  pbVar17 = (bfd *)0x0;\n  peVar15 = excludes;\n  for (pbVar12 = info->input_bfds; excludes = peVar15, pbVar12 != (bfd *)0x0;\n      pbVar12 = (pbVar12->link).next) {\n    pbVar13 = pbVar17;\n    if (peVar15 != (exclude_list_struct *)0x0) {\n      do {\n        bVar19 = false;\n        bVar3 = true;\n        if (peVar15->type == EXCLUDEFORIMPLIB) {\n          iVar4 = filename_cmp(peVar15->string,pbVar12->filename);\n          bVar19 = iVar4 == 0;\n          bVar3 = !bVar19;\n        }\n        peVar15 = peVar15->next;\n      } while ((peVar15 != (exclude_list_struct *)0x0) && (bVar3));\n      if (bVar19) {\n        pbVar13 = pbVar12->my_archive;\n        if (pbVar12->my_archive == (bfd *)0x0) {\n          pbVar13 = pbVar12;\n        }\n        pbVar7 = (bfd *)bfd_openr(pbVar13->filename,0);\n        if (pbVar7 == (bfd *)0x0) {\n          impfilename = pbVar12->filename;\n          pcVar14 = (char *)dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        pbVar13 = pbVar7;\n        if (pbVar12->my_archive != (bfd *)0x0) {\n          iVar4 = bfd_check_format_matches(pbVar7,2,0);\n          if (iVar4 == 0) {\n            pcVar14 = pbVar12->filename;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            pcVar9 = pbVar12->my_archive->filename;\nLAB_00150d14:\n            pcVar16 = (char *)dcgettext(0,pcVar16,5);\n            einfo(pcVar16,pcVar9,pcVar14);\n            return;\n          }\n          pbVar13 = (bfd *)0x0;\n          do {\n            pbVar13 = (bfd *)bfd_openr_next_archived_file(pbVar7,pbVar13);\n            if (pbVar13 == (bfd *)0x0) {\n              pcVar14 = pbVar12->filename;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              pcVar9 = pbVar12->my_archive->filename;\n              goto LAB_00150d14;\n            }\n            iVar4 = filename_cmp(pbVar13->filename);\n          } while (iVar4 != 0);\n        }\n        pbVar13->archive_next = pbVar17;\n      }\n    }\n    pbVar17 = pbVar13;\n    peVar15 = excludes;\n  }\n  if (0 < def->num_exports) {\n    lVar18 = 0;\n    do {\n      if (pep_def_file->exports[lVar18].flag_private == '\0') {\n        pbVar2 = info->hash;\n        pdVar10 = def->exports + lVar18;\n        pcVar14 = pdVar10->internal_name;\n        pdVar10->internal_name = pdVar10->name;\n        lVar11 = bfd_link_hash_lookup(pbVar2,pcVar14,0,0,0);\n        if (((lVar11 == 0) || (*(char *)(lVar11 + 0x42) != 'j')) ||\n           (*(long *)(lVar11 + 0x28) != 0x2b4598)) {\n          if ((pep_details->underscored != 0) && (*pcVar14 != '@')) {\n            sVar8 = strlen(pcVar14);\n            pcVar9 = (char *)xmalloc(sVar8 + 2);\n            sprintf(pcVar9,"_%s",pcVar14);\n            lVar11 = bfd_link_hash_lookup(info->hash,pcVar9,0,0,0);\n            free(pcVar9);\n            if ((lVar11 != 0) &&\n               ((*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          pbVar12 = make_one(def->exports + lVar18,parent,\n                             (uint)(def->exports[lVar18].flag_data == '\0'));\n          pdVar10 = def->exports;\n          pbVar12->archive_next = pbVar17;\n          pdVar10[lVar18].internal_name = pcVar14;\n          pbVar17 = pbVar12;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < def->num_exports);\n  }\n  pbVar12 = make_tail(parent);\n  if ((pbVar6 != (bfd *)0x0) && (pbVar12 != (bfd *)0x0)) {\n    pbVar6->archive_next = pbVar17;\n    pbVar12->archive_next = pbVar6;\n    iVar4 = bfd_set_archive_head(parent,pbVar12);\n    if (iVar4 == 0) {\n      einfo("%X%P: bfd_set_archive_head: %E\n");\n    }\n    iVar4 = bfd_close(parent);\n    if (iVar4 == 0) {\n      einfo("%X%P: bfd_close %s: %E\n",impfilename);\n    }\n    do {\n      pbVar12 = pbVar12->archive_next;\n      bfd_close();\n    } while (pbVar12 != (bfd *)0x0);\n  }\n  return;\n}\n\n" (function_definition "void pep_dll_generate_implib(def_file *def,char *impfilename,bfd_link_info *info)\n\n{\n  byte bVar1;\n  bfd_link_hash_table *pbVar2;\n  bool bVar3;\n  int iVar4;\n  byte *pbVar5;\n  bfd *parent;\n  bfd *pbVar6;\n  bfd *pbVar7;\n  size_t sVar8;\n  char *pcVar9;\n  def_file_export *pdVar10;\n  long lVar11;\n  bfd *pbVar12;\n  bfd *pbVar13;\n  char *pcVar14;\n  exclude_list_struct *peVar15;\n  char *pcVar16;\n  bfd *pbVar17;\n  long lVar18;\n  bool bVar19;\n  \n  dll_filename = def->name;\n  if (def->name == (char *)0x0) {\n    dll_filename = dll_name;\n  }\n  pbVar5 = (byte *)xstrdup();\n  bVar1 = *pbVar5;\n  dll_symname = (char *)pbVar5;\n  while (bVar1 != 0) {\n    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar5 = 0x5f;\n    }\n    pbVar5 = pbVar5 + 1;\n    bVar1 = *pbVar5;\n  }\n  unlink_if_ordinary(impfilename);\n  parent = (bfd *)bfd_openw(impfilename,0);\n  if (parent == (bfd *)0x0) {\n    pcVar14 = (char *)dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);\nLAB_00150d81:\n    einfo(pcVar14,impfilename);\n    return;\n  }\n  if (verbose != 0) {\n    pcVar14 = (char *)dcgettext(0,"Creating library file: %s\n",5);\n    info_msg(pcVar14,impfilename);\n  }\n  bfd_set_format(parent,2);\n  parent->field_0x47 = parent->field_0x47 | 0x80;\n  pbVar6 = make_head(parent);\n  pbVar17 = (bfd *)0x0;\n  peVar15 = excludes;\n  for (pbVar12 = info->input_bfds; excludes = peVar15, pbVar12 != (bfd *)0x0;\n      pbVar12 = (pbVar12->link).next) {\n    pbVar13 = pbVar17;\n    if (peVar15 != (exclude_list_struct *)0x0) {\n      do {\n        bVar19 = false;\n        bVar3 = true;\n        if (peVar15->type == EXCLUDEFORIMPLIB) {\n          iVar4 = filename_cmp(peVar15->string,pbVar12->filename);\n          bVar19 = iVar4 == 0;\n          bVar3 = !bVar19;\n        }\n        peVar15 = peVar15->next;\n      } while ((peVar15 != (exclude_list_struct *)0x0) && (bVar3));\n      if (bVar19) {\n        pbVar13 = pbVar12->my_archive;\n        if (pbVar12->my_archive == (bfd *)0x0) {\n          pbVar13 = pbVar12;\n        }\n        pbVar7 = (bfd *)bfd_openr(pbVar13->filename,0);\n        if (pbVar7 == (bfd *)0x0) {\n          impfilename = pbVar12->filename;\n          pcVar14 = (char *)dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        pbVar13 = pbVar7;\n        if (pbVar12->my_archive != (bfd *)0x0) {\n          iVar4 = bfd_check_format_matches(pbVar7,2,0);\n          if (iVar4 == 0) {\n            pcVar14 = pbVar12->filename;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            pcVar9 = pbVar12->my_archive->filename;\nLAB_00150d14:\n            pcVar16 = (char *)dcgettext(0,pcVar16,5);\n            einfo(pcVar16,pcVar9,pcVar14);\n            return;\n          }\n          pbVar13 = (bfd *)0x0;\n          do {\n            pbVar13 = (bfd *)bfd_openr_next_archived_file(pbVar7,pbVar13);\n            if (pbVar13 == (bfd *)0x0) {\n              pcVar14 = pbVar12->filename;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              pcVar9 = pbVar12->my_archive->filename;\n              goto LAB_00150d14;\n            }\n            iVar4 = filename_cmp(pbVar13->filename);\n          } while (iVar4 != 0);\n        }\n        pbVar13->archive_next = pbVar17;\n      }\n    }\n    pbVar17 = pbVar13;\n    peVar15 = excludes;\n  }\n  if (0 < def->num_exports) {\n    lVar18 = 0;\n    do {\n      if (pep_def_file->exports[lVar18].flag_private == '\0') {\n        pbVar2 = info->hash;\n        pdVar10 = def->exports + lVar18;\n        pcVar14 = pdVar10->internal_name;\n        pdVar10->internal_name = pdVar10->name;\n        lVar11 = bfd_link_hash_lookup(pbVar2,pcVar14,0,0,0);\n        if (((lVar11 == 0) || (*(char *)(lVar11 + 0x42) != 'j')) ||\n           (*(long *)(lVar11 + 0x28) != 0x2b4598)) {\n          if ((pep_details->underscored != 0) && (*pcVar14 != '@')) {\n            sVar8 = strlen(pcVar14);\n            pcVar9 = (char *)xmalloc(sVar8 + 2);\n            sprintf(pcVar9,"_%s",pcVar14);\n            lVar11 = bfd_link_hash_lookup(info->hash,pcVar9,0,0,0);\n            free(pcVar9);\n            if ((lVar11 != 0) &&\n               ((*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          pbVar12 = make_one(def->exports + lVar18,parent,\n                             (uint)(def->exports[lVar18].flag_data == '\0'));\n          pdVar10 = def->exports;\n          pbVar12->archive_next = pbVar17;\n          pdVar10[lVar18].internal_name = pcVar14;\n          pbVar17 = pbVar12;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < def->num_exports);\n  }\n  pbVar12 = make_tail(parent);\n  if ((pbVar6 != (bfd *)0x0) && (pbVar12 != (bfd *)0x0)) {\n    pbVar6->archive_next = pbVar17;\n    pbVar12->archive_next = pbVar6;\n    iVar4 = bfd_set_archive_head(parent,pbVar12);\n    if (iVar4 == 0) {\n      einfo("%X%P: bfd_set_archive_head: %E\n");\n    }\n    iVar4 = bfd_close(parent);\n    if (iVar4 == 0) {\n      einfo("%X%P: bfd_close %s: %E\n",impfilename);\n    }\n    do {\n      pbVar12 = pbVar12->archive_next;\n      bfd_close();\n    } while (pbVar12 != (bfd *)0x0);\n  }\n  return;\n}" primitive_type (function_declarator "pep_dll_generate_implib(def_file *def,char *impfilename,bfd_link_info *info)" identifier (parameter_list "(def_file *def,char *impfilename,bfd_link_info *info)" ( (parameter_declaration "def_file *def" type_identifier (pointer_declarator "*def" * identifier)) , (parameter_declaration "char *impfilename" primitive_type (pointer_declarator "*impfilename" * identifier)) , (parameter_declaration "bfd_link_info *info" type_identifier (pointer_declarator "*info" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  bfd_link_hash_table *pbVar2;\n  bool bVar3;\n  int iVar4;\n  byte *pbVar5;\n  bfd *parent;\n  bfd *pbVar6;\n  bfd *pbVar7;\n  size_t sVar8;\n  char *pcVar9;\n  def_file_export *pdVar10;\n  long lVar11;\n  bfd *pbVar12;\n  bfd *pbVar13;\n  char *pcVar14;\n  exclude_list_struct *peVar15;\n  char *pcVar16;\n  bfd *pbVar17;\n  long lVar18;\n  bool bVar19;\n  \n  dll_filename = def->name;\n  if (def->name == (char *)0x0) {\n    dll_filename = dll_name;\n  }\n  pbVar5 = (byte *)xstrdup();\n  bVar1 = *pbVar5;\n  dll_symname = (char *)pbVar5;\n  while (bVar1 != 0) {\n    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar5 = 0x5f;\n    }\n    pbVar5 = pbVar5 + 1;\n    bVar1 = *pbVar5;\n  }\n  unlink_if_ordinary(impfilename);\n  parent = (bfd *)bfd_openw(impfilename,0);\n  if (parent == (bfd *)0x0) {\n    pcVar14 = (char *)dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);\nLAB_00150d81:\n    einfo(pcVar14,impfilename);\n    return;\n  }\n  if (verbose != 0) {\n    pcVar14 = (char *)dcgettext(0,"Creating library file: %s\n",5);\n    info_msg(pcVar14,impfilename);\n  }\n  bfd_set_format(parent,2);\n  parent->field_0x47 = parent->field_0x47 | 0x80;\n  pbVar6 = make_head(parent);\n  pbVar17 = (bfd *)0x0;\n  peVar15 = excludes;\n  for (pbVar12 = info->input_bfds; excludes = peVar15, pbVar12 != (bfd *)0x0;\n      pbVar12 = (pbVar12->link).next) {\n    pbVar13 = pbVar17;\n    if (peVar15 != (exclude_list_struct *)0x0) {\n      do {\n        bVar19 = false;\n        bVar3 = true;\n        if (peVar15->type == EXCLUDEFORIMPLIB) {\n          iVar4 = filename_cmp(peVar15->string,pbVar12->filename);\n          bVar19 = iVar4 == 0;\n          bVar3 = !bVar19;\n        }\n        peVar15 = peVar15->next;\n      } while ((peVar15 != (exclude_list_struct *)0x0) && (bVar3));\n      if (bVar19) {\n        pbVar13 = pbVar12->my_archive;\n        if (pbVar12->my_archive == (bfd *)0x0) {\n          pbVar13 = pbVar12;\n        }\n        pbVar7 = (bfd *)bfd_openr(pbVar13->filename,0);\n        if (pbVar7 == (bfd *)0x0) {\n          impfilename = pbVar12->filename;\n          pcVar14 = (char *)dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        pbVar13 = pbVar7;\n        if (pbVar12->my_archive != (bfd *)0x0) {\n          iVar4 = bfd_check_format_matches(pbVar7,2,0);\n          if (iVar4 == 0) {\n            pcVar14 = pbVar12->filename;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            pcVar9 = pbVar12->my_archive->filename;\nLAB_00150d14:\n            pcVar16 = (char *)dcgettext(0,pcVar16,5);\n            einfo(pcVar16,pcVar9,pcVar14);\n            return;\n          }\n          pbVar13 = (bfd *)0x0;\n          do {\n            pbVar13 = (bfd *)bfd_openr_next_archived_file(pbVar7,pbVar13);\n            if (pbVar13 == (bfd *)0x0) {\n              pcVar14 = pbVar12->filename;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              pcVar9 = pbVar12->my_archive->filename;\n              goto LAB_00150d14;\n            }\n            iVar4 = filename_cmp(pbVar13->filename);\n          } while (iVar4 != 0);\n        }\n        pbVar13->archive_next = pbVar17;\n      }\n    }\n    pbVar17 = pbVar13;\n    peVar15 = excludes;\n  }\n  if (0 < def->num_exports) {\n    lVar18 = 0;\n    do {\n      if (pep_def_file->exports[lVar18].flag_private == '\0') {\n        pbVar2 = info->hash;\n        pdVar10 = def->exports + lVar18;\n        pcVar14 = pdVar10->internal_name;\n        pdVar10->internal_name = pdVar10->name;\n        lVar11 = bfd_link_hash_lookup(pbVar2,pcVar14,0,0,0);\n        if (((lVar11 == 0) || (*(char *)(lVar11 + 0x42) != 'j')) ||\n           (*(long *)(lVar11 + 0x28) != 0x2b4598)) {\n          if ((pep_details->underscored != 0) && (*pcVar14 != '@')) {\n            sVar8 = strlen(pcVar14);\n            pcVar9 = (char *)xmalloc(sVar8 + 2);\n            sprintf(pcVar9,"_%s",pcVar14);\n            lVar11 = bfd_link_hash_lookup(info->hash,pcVar9,0,0,0);\n            free(pcVar9);\n            if ((lVar11 != 0) &&\n               ((*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          pbVar12 = make_one(def->exports + lVar18,parent,\n                             (uint)(def->exports[lVar18].flag_data == '\0'));\n          pdVar10 = def->exports;\n          pbVar12->archive_next = pbVar17;\n          pdVar10[lVar18].internal_name = pcVar14;\n          pbVar17 = pbVar12;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < def->num_exports);\n  }\n  pbVar12 = make_tail(parent);\n  if ((pbVar6 != (bfd *)0x0) && (pbVar12 != (bfd *)0x0)) {\n    pbVar6->archive_next = pbVar17;\n    pbVar12->archive_next = pbVar6;\n    iVar4 = bfd_set_archive_head(parent,pbVar12);\n    if (iVar4 == 0) {\n      einfo("%X%P: bfd_set_archive_head: %E\n");\n    }\n    iVar4 = bfd_close(parent);\n    if (iVar4 == 0) {\n      einfo("%X%P: bfd_close %s: %E\n",impfilename);\n    }\n    do {\n      pbVar12 = pbVar12->archive_next;\n      bfd_close();\n    } while (pbVar12 != (bfd *)0x0);\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bfd_link_hash_table *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "bfd *parent;" type_identifier (pointer_declarator "*parent" * identifier) ;) (declaration "bfd *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "bfd *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "def_file_export *pdVar10;" type_identifier (pointer_declarator "*pdVar10" * identifier) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "bfd *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "bfd *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "exclude_list_struct *peVar15;" type_identifier (pointer_declarator "*peVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "bfd *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar19;" primitive_type identifier ;) (expression_statement "dll_filename = def->name;" (assignment_expression "dll_filename = def->name" identifier = (field_expression "def->name" identifier -> field_identifier)) ;) (if_statement "if (def->name == (char *)0x0) {\n    dll_filename = dll_name;\n  }" if (parenthesized_expression "(def->name == (char *)0x0)" ( (binary_expression "def->name == (char *)0x0" (field_expression "def->name" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    dll_filename = dll_name;\n  }" { (expression_statement "dll_filename = dll_name;" (assignment_expression "dll_filename = dll_name" identifier = identifier) ;) })) (expression_statement "pbVar5 = (byte *)xstrdup();" (assignment_expression "pbVar5 = (byte *)xstrdup()" identifier = (cast_expression "(byte *)xstrdup()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar1 = *pbVar5;" (assignment_expression "bVar1 = *pbVar5" identifier = (pointer_expression "*pbVar5" * identifier)) ;) (expression_statement "dll_symname = (char *)pbVar5;" (assignment_expression "dll_symname = (char *)pbVar5" identifier = (cast_expression "(char *)pbVar5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (while_statement "while (bVar1 != 0) {\n    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar5 = 0x5f;\n    }\n    pbVar5 = pbVar5 + 1;\n    bVar1 = *pbVar5;\n  }" while (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar5 = 0x5f;\n    }\n    pbVar5 = pbVar5 + 1;\n    bVar1 = *pbVar5;\n  }" { (if_statement "if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar5 = 0x5f;\n    }" if (parenthesized_expression "((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0)" ( (binary_expression "(_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar1 * 2] & 0x8c)" ( (binary_expression "_sch_istable[(ulong)bVar1 * 2] & 0x8c" (subscript_expression "_sch_istable[(ulong)bVar1 * 2]" identifier [ (binary_expression "(ulong)bVar1 * 2" (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      *pbVar5 = 0x5f;\n    }" { (expression_statement "*pbVar5 = 0x5f;" (assignment_expression "*pbVar5 = 0x5f" (pointer_expression "*pbVar5" * identifier) = number_literal) ;) })) (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *pbVar5;" (assignment_expression "bVar1 = *pbVar5" identifier = (pointer_expression "*pbVar5" * identifier)) ;) })) (expression_statement "unlink_if_ordinary(impfilename);" (call_expression "unlink_if_ordinary(impfilename)" identifier (argument_list "(impfilename)" ( identifier ))) ;) (expression_statement "parent = (bfd *)bfd_openw(impfilename,0);" (assignment_expression "parent = (bfd *)bfd_openw(impfilename,0)" identifier = (cast_expression "(bfd *)bfd_openw(impfilename,0)" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_openw(impfilename,0)" identifier (argument_list "(impfilename,0)" ( identifier , number_literal ))))) ;) (if_statement "if (parent == (bfd *)0x0) {\n    pcVar14 = (char *)dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);\nLAB_00150d81:\n    einfo(pcVar14,impfilename);\n    return;\n  }" if (parenthesized_expression "(parent == (bfd *)0x0)" ( (binary_expression "parent == (bfd *)0x0" identifier == (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar14 = (char *)dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);\nLAB_00150d81:\n    einfo(pcVar14,impfilename);\n    return;\n  }" { (expression_statement "pcVar14 = (char *)dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);" (assignment_expression "pcVar14 = (char *)dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5)" identifier (argument_list "(0,"%X%P: can\'t open .lib file: %s\n",5)" ( number_literal , (string_literal ""%X%P: can\'t open .lib file: %s\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (labeled_statement "LAB_00150d81:\n    einfo(pcVar14,impfilename);" statement_identifier : (expression_statement "einfo(pcVar14,impfilename);" (call_expression "einfo(pcVar14,impfilename)" identifier (argument_list "(pcVar14,impfilename)" ( identifier , identifier ))) ;)) (return_statement "return;" return ;) })) (if_statement "if (verbose != 0) {\n    pcVar14 = (char *)dcgettext(0,"Creating library file: %s\n",5);\n    info_msg(pcVar14,impfilename);\n  }" if (parenthesized_expression "(verbose != 0)" ( (binary_expression "verbose != 0" identifier != number_literal) )) (compound_statement "{\n    pcVar14 = (char *)dcgettext(0,"Creating library file: %s\n",5);\n    info_msg(pcVar14,impfilename);\n  }" { (expression_statement "pcVar14 = (char *)dcgettext(0,"Creating library file: %s\n",5);" (assignment_expression "pcVar14 = (char *)dcgettext(0,"Creating library file: %s\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Creating library file: %s\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Creating library file: %s\n",5)" identifier (argument_list "(0,"Creating library file: %s\n",5)" ( number_literal , (string_literal ""Creating library file: %s\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "info_msg(pcVar14,impfilename);" (call_expression "info_msg(pcVar14,impfilename)" identifier (argument_list "(pcVar14,impfilename)" ( identifier , identifier ))) ;) })) (expression_statement "bfd_set_format(parent,2);" (call_expression "bfd_set_format(parent,2)" identifier (argument_list "(parent,2)" ( identifier , number_literal ))) ;) (expression_statement "parent->field_0x47 = parent->field_0x47 | 0x80;" (assignment_expression "parent->field_0x47 = parent->field_0x47 | 0x80" (field_expression "parent->field_0x47" identifier -> field_identifier) = (binary_expression "parent->field_0x47 | 0x80" (field_expression "parent->field_0x47" identifier -> field_identifier) | number_literal)) ;) (expression_statement "pbVar6 = make_head(parent);" (assignment_expression "pbVar6 = make_head(parent)" identifier = (call_expression "make_head(parent)" identifier (argument_list "(parent)" ( identifier )))) ;) (expression_statement "pbVar17 = (bfd *)0x0;" (assignment_expression "pbVar17 = (bfd *)0x0" identifier = (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "peVar15 = excludes;" (assignment_expression "peVar15 = excludes" identifier = identifier) ;) (for_statement "for (pbVar12 = info->input_bfds; excludes = peVar15, pbVar12 != (bfd *)0x0;\n      pbVar12 = (pbVar12->link).next) {\n    pbVar13 = pbVar17;\n    if (peVar15 != (exclude_list_struct *)0x0) {\n      do {\n        bVar19 = false;\n        bVar3 = true;\n        if (peVar15->type == EXCLUDEFORIMPLIB) {\n          iVar4 = filename_cmp(peVar15->string,pbVar12->filename);\n          bVar19 = iVar4 == 0;\n          bVar3 = !bVar19;\n        }\n        peVar15 = peVar15->next;\n      } while ((peVar15 != (exclude_list_struct *)0x0) && (bVar3));\n      if (bVar19) {\n        pbVar13 = pbVar12->my_archive;\n        if (pbVar12->my_archive == (bfd *)0x0) {\n          pbVar13 = pbVar12;\n        }\n        pbVar7 = (bfd *)bfd_openr(pbVar13->filename,0);\n        if (pbVar7 == (bfd *)0x0) {\n          impfilename = pbVar12->filename;\n          pcVar14 = (char *)dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        pbVar13 = pbVar7;\n        if (pbVar12->my_archive != (bfd *)0x0) {\n          iVar4 = bfd_check_format_matches(pbVar7,2,0);\n          if (iVar4 == 0) {\n            pcVar14 = pbVar12->filename;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            pcVar9 = pbVar12->my_archive->filename;\nLAB_00150d14:\n            pcVar16 = (char *)dcgettext(0,pcVar16,5);\n            einfo(pcVar16,pcVar9,pcVar14);\n            return;\n          }\n          pbVar13 = (bfd *)0x0;\n          do {\n            pbVar13 = (bfd *)bfd_openr_next_archived_file(pbVar7,pbVar13);\n            if (pbVar13 == (bfd *)0x0) {\n              pcVar14 = pbVar12->filename;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              pcVar9 = pbVar12->my_archive->filename;\n              goto LAB_00150d14;\n            }\n            iVar4 = filename_cmp(pbVar13->filename);\n          } while (iVar4 != 0);\n        }\n        pbVar13->archive_next = pbVar17;\n      }\n    }\n    pbVar17 = pbVar13;\n    peVar15 = excludes;\n  }" for ( (assignment_expression "pbVar12 = info->input_bfds" identifier = (field_expression "info->input_bfds" identifier -> field_identifier)) ; (comma_expression "excludes = peVar15, pbVar12 != (bfd *)0x0" (assignment_expression "excludes = peVar15" identifier = identifier) , (binary_expression "pbVar12 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "pbVar12 = (pbVar12->link).next" identifier = (field_expression "(pbVar12->link).next" (parenthesized_expression "(pbVar12->link)" ( (field_expression "pbVar12->link" identifier -> field_identifier) )) . field_identifier)) ) (compound_statement "{\n    pbVar13 = pbVar17;\n    if (peVar15 != (exclude_list_struct *)0x0) {\n      do {\n        bVar19 = false;\n        bVar3 = true;\n        if (peVar15->type == EXCLUDEFORIMPLIB) {\n          iVar4 = filename_cmp(peVar15->string,pbVar12->filename);\n          bVar19 = iVar4 == 0;\n          bVar3 = !bVar19;\n        }\n        peVar15 = peVar15->next;\n      } while ((peVar15 != (exclude_list_struct *)0x0) && (bVar3));\n      if (bVar19) {\n        pbVar13 = pbVar12->my_archive;\n        if (pbVar12->my_archive == (bfd *)0x0) {\n          pbVar13 = pbVar12;\n        }\n        pbVar7 = (bfd *)bfd_openr(pbVar13->filename,0);\n        if (pbVar7 == (bfd *)0x0) {\n          impfilename = pbVar12->filename;\n          pcVar14 = (char *)dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        pbVar13 = pbVar7;\n        if (pbVar12->my_archive != (bfd *)0x0) {\n          iVar4 = bfd_check_format_matches(pbVar7,2,0);\n          if (iVar4 == 0) {\n            pcVar14 = pbVar12->filename;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            pcVar9 = pbVar12->my_archive->filename;\nLAB_00150d14:\n            pcVar16 = (char *)dcgettext(0,pcVar16,5);\n            einfo(pcVar16,pcVar9,pcVar14);\n            return;\n          }\n          pbVar13 = (bfd *)0x0;\n          do {\n            pbVar13 = (bfd *)bfd_openr_next_archived_file(pbVar7,pbVar13);\n            if (pbVar13 == (bfd *)0x0) {\n              pcVar14 = pbVar12->filename;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              pcVar9 = pbVar12->my_archive->filename;\n              goto LAB_00150d14;\n            }\n            iVar4 = filename_cmp(pbVar13->filename);\n          } while (iVar4 != 0);\n        }\n        pbVar13->archive_next = pbVar17;\n      }\n    }\n    pbVar17 = pbVar13;\n    peVar15 = excludes;\n  }" { (expression_statement "pbVar13 = pbVar17;" (assignment_expression "pbVar13 = pbVar17" identifier = identifier) ;) (if_statement "if (peVar15 != (exclude_list_struct *)0x0) {\n      do {\n        bVar19 = false;\n        bVar3 = true;\n        if (peVar15->type == EXCLUDEFORIMPLIB) {\n          iVar4 = filename_cmp(peVar15->string,pbVar12->filename);\n          bVar19 = iVar4 == 0;\n          bVar3 = !bVar19;\n        }\n        peVar15 = peVar15->next;\n      } while ((peVar15 != (exclude_list_struct *)0x0) && (bVar3));\n      if (bVar19) {\n        pbVar13 = pbVar12->my_archive;\n        if (pbVar12->my_archive == (bfd *)0x0) {\n          pbVar13 = pbVar12;\n        }\n        pbVar7 = (bfd *)bfd_openr(pbVar13->filename,0);\n        if (pbVar7 == (bfd *)0x0) {\n          impfilename = pbVar12->filename;\n          pcVar14 = (char *)dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        pbVar13 = pbVar7;\n        if (pbVar12->my_archive != (bfd *)0x0) {\n          iVar4 = bfd_check_format_matches(pbVar7,2,0);\n          if (iVar4 == 0) {\n            pcVar14 = pbVar12->filename;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            pcVar9 = pbVar12->my_archive->filename;\nLAB_00150d14:\n            pcVar16 = (char *)dcgettext(0,pcVar16,5);\n            einfo(pcVar16,pcVar9,pcVar14);\n            return;\n          }\n          pbVar13 = (bfd *)0x0;\n          do {\n            pbVar13 = (bfd *)bfd_openr_next_archived_file(pbVar7,pbVar13);\n            if (pbVar13 == (bfd *)0x0) {\n              pcVar14 = pbVar12->filename;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              pcVar9 = pbVar12->my_archive->filename;\n              goto LAB_00150d14;\n            }\n            iVar4 = filename_cmp(pbVar13->filename);\n          } while (iVar4 != 0);\n        }\n        pbVar13->archive_next = pbVar17;\n      }\n    }" if (parenthesized_expression "(peVar15 != (exclude_list_struct *)0x0)" ( (binary_expression "peVar15 != (exclude_list_struct *)0x0" identifier != (cast_expression "(exclude_list_struct *)0x0" ( (type_descriptor "exclude_list_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        bVar19 = false;\n        bVar3 = true;\n        if (peVar15->type == EXCLUDEFORIMPLIB) {\n          iVar4 = filename_cmp(peVar15->string,pbVar12->filename);\n          bVar19 = iVar4 == 0;\n          bVar3 = !bVar19;\n        }\n        peVar15 = peVar15->next;\n      } while ((peVar15 != (exclude_list_struct *)0x0) && (bVar3));\n      if (bVar19) {\n        pbVar13 = pbVar12->my_archive;\n        if (pbVar12->my_archive == (bfd *)0x0) {\n          pbVar13 = pbVar12;\n        }\n        pbVar7 = (bfd *)bfd_openr(pbVar13->filename,0);\n        if (pbVar7 == (bfd *)0x0) {\n          impfilename = pbVar12->filename;\n          pcVar14 = (char *)dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        pbVar13 = pbVar7;\n        if (pbVar12->my_archive != (bfd *)0x0) {\n          iVar4 = bfd_check_format_matches(pbVar7,2,0);\n          if (iVar4 == 0) {\n            pcVar14 = pbVar12->filename;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            pcVar9 = pbVar12->my_archive->filename;\nLAB_00150d14:\n            pcVar16 = (char *)dcgettext(0,pcVar16,5);\n            einfo(pcVar16,pcVar9,pcVar14);\n            return;\n          }\n          pbVar13 = (bfd *)0x0;\n          do {\n            pbVar13 = (bfd *)bfd_openr_next_archived_file(pbVar7,pbVar13);\n            if (pbVar13 == (bfd *)0x0) {\n              pcVar14 = pbVar12->filename;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              pcVar9 = pbVar12->my_archive->filename;\n              goto LAB_00150d14;\n            }\n            iVar4 = filename_cmp(pbVar13->filename);\n          } while (iVar4 != 0);\n        }\n        pbVar13->archive_next = pbVar17;\n      }\n    }" { (do_statement "do {\n        bVar19 = false;\n        bVar3 = true;\n        if (peVar15->type == EXCLUDEFORIMPLIB) {\n          iVar4 = filename_cmp(peVar15->string,pbVar12->filename);\n          bVar19 = iVar4 == 0;\n          bVar3 = !bVar19;\n        }\n        peVar15 = peVar15->next;\n      } while ((peVar15 != (exclude_list_struct *)0x0) && (bVar3));" do (compound_statement "{\n        bVar19 = false;\n        bVar3 = true;\n        if (peVar15->type == EXCLUDEFORIMPLIB) {\n          iVar4 = filename_cmp(peVar15->string,pbVar12->filename);\n          bVar19 = iVar4 == 0;\n          bVar3 = !bVar19;\n        }\n        peVar15 = peVar15->next;\n      }" { (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (if_statement "if (peVar15->type == EXCLUDEFORIMPLIB) {\n          iVar4 = filename_cmp(peVar15->string,pbVar12->filename);\n          bVar19 = iVar4 == 0;\n          bVar3 = !bVar19;\n        }" if (parenthesized_expression "(peVar15->type == EXCLUDEFORIMPLIB)" ( (binary_expression "peVar15->type == EXCLUDEFORIMPLIB" (field_expression "peVar15->type" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          iVar4 = filename_cmp(peVar15->string,pbVar12->filename);\n          bVar19 = iVar4 == 0;\n          bVar3 = !bVar19;\n        }" { (expression_statement "iVar4 = filename_cmp(peVar15->string,pbVar12->filename);" (assignment_expression "iVar4 = filename_cmp(peVar15->string,pbVar12->filename)" identifier = (call_expression "filename_cmp(peVar15->string,pbVar12->filename)" identifier (argument_list "(peVar15->string,pbVar12->filename)" ( (field_expression "peVar15->string" identifier -> field_identifier) , (field_expression "pbVar12->filename" identifier -> field_identifier) )))) ;) (expression_statement "bVar19 = iVar4 == 0;" (assignment_expression "bVar19 = iVar4 == 0" identifier = (binary_expression "iVar4 == 0" identifier == number_literal)) ;) (expression_statement "bVar3 = !bVar19;" (assignment_expression "bVar3 = !bVar19" identifier = (unary_expression "!bVar19" ! identifier)) ;) })) (expression_statement "peVar15 = peVar15->next;" (assignment_expression "peVar15 = peVar15->next" identifier = (field_expression "peVar15->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "((peVar15 != (exclude_list_struct *)0x0) && (bVar3))" ( (binary_expression "(peVar15 != (exclude_list_struct *)0x0) && (bVar3)" (parenthesized_expression "(peVar15 != (exclude_list_struct *)0x0)" ( (binary_expression "peVar15 != (exclude_list_struct *)0x0" identifier != (cast_expression "(exclude_list_struct *)0x0" ( (type_descriptor "exclude_list_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar3)" ( identifier ))) )) ;) (if_statement "if (bVar19) {\n        pbVar13 = pbVar12->my_archive;\n        if (pbVar12->my_archive == (bfd *)0x0) {\n          pbVar13 = pbVar12;\n        }\n        pbVar7 = (bfd *)bfd_openr(pbVar13->filename,0);\n        if (pbVar7 == (bfd *)0x0) {\n          impfilename = pbVar12->filename;\n          pcVar14 = (char *)dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        pbVar13 = pbVar7;\n        if (pbVar12->my_archive != (bfd *)0x0) {\n          iVar4 = bfd_check_format_matches(pbVar7,2,0);\n          if (iVar4 == 0) {\n            pcVar14 = pbVar12->filename;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            pcVar9 = pbVar12->my_archive->filename;\nLAB_00150d14:\n            pcVar16 = (char *)dcgettext(0,pcVar16,5);\n            einfo(pcVar16,pcVar9,pcVar14);\n            return;\n          }\n          pbVar13 = (bfd *)0x0;\n          do {\n            pbVar13 = (bfd *)bfd_openr_next_archived_file(pbVar7,pbVar13);\n            if (pbVar13 == (bfd *)0x0) {\n              pcVar14 = pbVar12->filename;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              pcVar9 = pbVar12->my_archive->filename;\n              goto LAB_00150d14;\n            }\n            iVar4 = filename_cmp(pbVar13->filename);\n          } while (iVar4 != 0);\n        }\n        pbVar13->archive_next = pbVar17;\n      }" if (parenthesized_expression "(bVar19)" ( identifier )) (compound_statement "{\n        pbVar13 = pbVar12->my_archive;\n        if (pbVar12->my_archive == (bfd *)0x0) {\n          pbVar13 = pbVar12;\n        }\n        pbVar7 = (bfd *)bfd_openr(pbVar13->filename,0);\n        if (pbVar7 == (bfd *)0x0) {\n          impfilename = pbVar12->filename;\n          pcVar14 = (char *)dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        pbVar13 = pbVar7;\n        if (pbVar12->my_archive != (bfd *)0x0) {\n          iVar4 = bfd_check_format_matches(pbVar7,2,0);\n          if (iVar4 == 0) {\n            pcVar14 = pbVar12->filename;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            pcVar9 = pbVar12->my_archive->filename;\nLAB_00150d14:\n            pcVar16 = (char *)dcgettext(0,pcVar16,5);\n            einfo(pcVar16,pcVar9,pcVar14);\n            return;\n          }\n          pbVar13 = (bfd *)0x0;\n          do {\n            pbVar13 = (bfd *)bfd_openr_next_archived_file(pbVar7,pbVar13);\n            if (pbVar13 == (bfd *)0x0) {\n              pcVar14 = pbVar12->filename;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              pcVar9 = pbVar12->my_archive->filename;\n              goto LAB_00150d14;\n            }\n            iVar4 = filename_cmp(pbVar13->filename);\n          } while (iVar4 != 0);\n        }\n        pbVar13->archive_next = pbVar17;\n      }" { (expression_statement "pbVar13 = pbVar12->my_archive;" (assignment_expression "pbVar13 = pbVar12->my_archive" identifier = (field_expression "pbVar12->my_archive" identifier -> field_identifier)) ;) (if_statement "if (pbVar12->my_archive == (bfd *)0x0) {\n          pbVar13 = pbVar12;\n        }" if (parenthesized_expression "(pbVar12->my_archive == (bfd *)0x0)" ( (binary_expression "pbVar12->my_archive == (bfd *)0x0" (field_expression "pbVar12->my_archive" identifier -> field_identifier) == (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pbVar13 = pbVar12;\n        }" { (expression_statement "pbVar13 = pbVar12;" (assignment_expression "pbVar13 = pbVar12" identifier = identifier) ;) })) (expression_statement "pbVar7 = (bfd *)bfd_openr(pbVar13->filename,0);" (assignment_expression "pbVar7 = (bfd *)bfd_openr(pbVar13->filename,0)" identifier = (cast_expression "(bfd *)bfd_openr(pbVar13->filename,0)" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_openr(pbVar13->filename,0)" identifier (argument_list "(pbVar13->filename,0)" ( (field_expression "pbVar13->filename" identifier -> field_identifier) , number_literal ))))) ;) (if_statement "if (pbVar7 == (bfd *)0x0) {\n          impfilename = pbVar12->filename;\n          pcVar14 = (char *)dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }" if (parenthesized_expression "(pbVar7 == (bfd *)0x0)" ( (binary_expression "pbVar7 == (bfd *)0x0" identifier == (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          impfilename = pbVar12->filename;\n          pcVar14 = (char *)dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }" { (expression_statement "impfilename = pbVar12->filename;" (assignment_expression "impfilename = pbVar12->filename" identifier = (field_expression "pbVar12->filename" identifier -> field_identifier)) ;) (expression_statement "pcVar14 = (char *)dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);" (assignment_expression "pcVar14 = (char *)dcgettext(0,"%X%P: bfd_openr %s: %E\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%X%P: bfd_openr %s: %E\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%X%P: bfd_openr %s: %E\n",5)" identifier (argument_list "(0,"%X%P: bfd_openr %s: %E\n",5)" ( number_literal , (string_literal ""%X%P: bfd_openr %s: %E\n"" " string_content escape_sequence ") , number_literal ))))) ;) (goto_statement "goto LAB_00150d81;" goto statement_identifier ;) })) (expression_statement "pbVar13 = pbVar7;" (assignment_expression "pbVar13 = pbVar7" identifier = identifier) ;) (if_statement "if (pbVar12->my_archive != (bfd *)0x0) {\n          iVar4 = bfd_check_format_matches(pbVar7,2,0);\n          if (iVar4 == 0) {\n            pcVar14 = pbVar12->filename;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            pcVar9 = pbVar12->my_archive->filename;\nLAB_00150d14:\n            pcVar16 = (char *)dcgettext(0,pcVar16,5);\n            einfo(pcVar16,pcVar9,pcVar14);\n            return;\n          }\n          pbVar13 = (bfd *)0x0;\n          do {\n            pbVar13 = (bfd *)bfd_openr_next_archived_file(pbVar7,pbVar13);\n            if (pbVar13 == (bfd *)0x0) {\n              pcVar14 = pbVar12->filename;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              pcVar9 = pbVar12->my_archive->filename;\n              goto LAB_00150d14;\n            }\n            iVar4 = filename_cmp(pbVar13->filename);\n          } while (iVar4 != 0);\n        }" if (parenthesized_expression "(pbVar12->my_archive != (bfd *)0x0)" ( (binary_expression "pbVar12->my_archive != (bfd *)0x0" (field_expression "pbVar12->my_archive" identifier -> field_identifier) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar4 = bfd_check_format_matches(pbVar7,2,0);\n          if (iVar4 == 0) {\n            pcVar14 = pbVar12->filename;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            pcVar9 = pbVar12->my_archive->filename;\nLAB_00150d14:\n            pcVar16 = (char *)dcgettext(0,pcVar16,5);\n            einfo(pcVar16,pcVar9,pcVar14);\n            return;\n          }\n          pbVar13 = (bfd *)0x0;\n          do {\n            pbVar13 = (bfd *)bfd_openr_next_archived_file(pbVar7,pbVar13);\n            if (pbVar13 == (bfd *)0x0) {\n              pcVar14 = pbVar12->filename;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              pcVar9 = pbVar12->my_archive->filename;\n              goto LAB_00150d14;\n            }\n            iVar4 = filename_cmp(pbVar13->filename);\n          } while (iVar4 != 0);\n        }" { (expression_statement "iVar4 = bfd_check_format_matches(pbVar7,2,0);" (assignment_expression "iVar4 = bfd_check_format_matches(pbVar7,2,0)" identifier = (call_expression "bfd_check_format_matches(pbVar7,2,0)" identifier (argument_list "(pbVar7,2,0)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n            pcVar14 = pbVar12->filename;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            pcVar9 = pbVar12->my_archive->filename;\nLAB_00150d14:\n            pcVar16 = (char *)dcgettext(0,pcVar16,5);\n            einfo(pcVar16,pcVar9,pcVar14);\n            return;\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            pcVar14 = pbVar12->filename;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            pcVar9 = pbVar12->my_archive->filename;\nLAB_00150d14:\n            pcVar16 = (char *)dcgettext(0,pcVar16,5);\n            einfo(pcVar16,pcVar9,pcVar14);\n            return;\n          }" { (expression_statement "pcVar14 = pbVar12->filename;" (assignment_expression "pcVar14 = pbVar12->filename" identifier = (field_expression "pbVar12->filename" identifier -> field_identifier)) ;) (expression_statement "pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";" (assignment_expression "pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file"" identifier = (string_literal ""%X%P: %s(%s): can\'t find member in non-archive file"" " string_content escape_sequence string_content ")) ;) (expression_statement "pcVar9 = pbVar12->my_archive->filename;" (assignment_expression "pcVar9 = pbVar12->my_archive->filename" identifier = (field_expression "pbVar12->my_archive->filename" (field_expression "pbVar12->my_archive" identifier -> field_identifier) -> field_identifier)) ;) (labeled_statement "LAB_00150d14:\n            pcVar16 = (char *)dcgettext(0,pcVar16,5);" statement_identifier : (expression_statement "pcVar16 = (char *)dcgettext(0,pcVar16,5);" (assignment_expression "pcVar16 = (char *)dcgettext(0,pcVar16,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar16,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar16,5)" identifier (argument_list "(0,pcVar16,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "einfo(pcVar16,pcVar9,pcVar14);" (call_expression "einfo(pcVar16,pcVar9,pcVar14)" identifier (argument_list "(pcVar16,pcVar9,pcVar14)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "pbVar13 = (bfd *)0x0;" (assignment_expression "pbVar13 = (bfd *)0x0" identifier = (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            pbVar13 = (bfd *)bfd_openr_next_archived_file(pbVar7,pbVar13);\n            if (pbVar13 == (bfd *)0x0) {\n              pcVar14 = pbVar12->filename;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              pcVar9 = pbVar12->my_archive->filename;\n              goto LAB_00150d14;\n            }\n            iVar4 = filename_cmp(pbVar13->filename);\n          } while (iVar4 != 0);" do (compound_statement "{\n            pbVar13 = (bfd *)bfd_openr_next_archived_file(pbVar7,pbVar13);\n            if (pbVar13 == (bfd *)0x0) {\n              pcVar14 = pbVar12->filename;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              pcVar9 = pbVar12->my_archive->filename;\n              goto LAB_00150d14;\n            }\n            iVar4 = filename_cmp(pbVar13->filename);\n          }" { (expression_statement "pbVar13 = (bfd *)bfd_openr_next_archived_file(pbVar7,pbVar13);" (assignment_expression "pbVar13 = (bfd *)bfd_openr_next_archived_file(pbVar7,pbVar13)" identifier = (cast_expression "(bfd *)bfd_openr_next_archived_file(pbVar7,pbVar13)" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_openr_next_archived_file(pbVar7,pbVar13)" identifier (argument_list "(pbVar7,pbVar13)" ( identifier , identifier ))))) ;) (if_statement "if (pbVar13 == (bfd *)0x0) {\n              pcVar14 = pbVar12->filename;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              pcVar9 = pbVar12->my_archive->filename;\n              goto LAB_00150d14;\n            }" 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)) )) (compound_statement "{\n              pcVar14 = pbVar12->filename;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              pcVar9 = pbVar12->my_archive->filename;\n              goto LAB_00150d14;\n            }" { (expression_statement "pcVar14 = pbVar12->filename;" (assignment_expression "pcVar14 = pbVar12->filename" identifier = (field_expression "pbVar12->filename" identifier -> field_identifier)) ;) (expression_statement "pcVar16 = "%X%P: %s(%s): can\'t find member in archive";" (assignment_expression "pcVar16 = "%X%P: %s(%s): can\'t find member in archive"" identifier = (string_literal ""%X%P: %s(%s): can\'t find member in archive"" " string_content escape_sequence string_content ")) ;) (expression_statement "pcVar9 = pbVar12->my_archive->filename;" (assignment_expression "pcVar9 = pbVar12->my_archive->filename" identifier = (field_expression "pbVar12->my_archive->filename" (field_expression "pbVar12->my_archive" identifier -> field_identifier) -> field_identifier)) ;) (goto_statement "goto LAB_00150d14;" goto statement_identifier ;) })) (expression_statement "iVar4 = filename_cmp(pbVar13->filename);" (assignment_expression "iVar4 = filename_cmp(pbVar13->filename)" identifier = (call_expression "filename_cmp(pbVar13->filename)" identifier (argument_list "(pbVar13->filename)" ( (field_expression "pbVar13->filename" identifier -> field_identifier) )))) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) })) (expression_statement "pbVar13->archive_next = pbVar17;" (assignment_expression "pbVar13->archive_next = pbVar17" (field_expression "pbVar13->archive_next" identifier -> field_identifier) = identifier) ;) })) })) (expression_statement "pbVar17 = pbVar13;" (assignment_expression "pbVar17 = pbVar13" identifier = identifier) ;) (expression_statement "peVar15 = excludes;" (assignment_expression "peVar15 = excludes" identifier = identifier) ;) })) (if_statement "if (0 < def->num_exports) {\n    lVar18 = 0;\n    do {\n      if (pep_def_file->exports[lVar18].flag_private == '\0') {\n        pbVar2 = info->hash;\n        pdVar10 = def->exports + lVar18;\n        pcVar14 = pdVar10->internal_name;\n        pdVar10->internal_name = pdVar10->name;\n        lVar11 = bfd_link_hash_lookup(pbVar2,pcVar14,0,0,0);\n        if (((lVar11 == 0) || (*(char *)(lVar11 + 0x42) != 'j')) ||\n           (*(long *)(lVar11 + 0x28) != 0x2b4598)) {\n          if ((pep_details->underscored != 0) && (*pcVar14 != '@')) {\n            sVar8 = strlen(pcVar14);\n            pcVar9 = (char *)xmalloc(sVar8 + 2);\n            sprintf(pcVar9,"_%s",pcVar14);\n            lVar11 = bfd_link_hash_lookup(info->hash,pcVar9,0,0,0);\n            free(pcVar9);\n            if ((lVar11 != 0) &&\n               ((*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          pbVar12 = make_one(def->exports + lVar18,parent,\n                             (uint)(def->exports[lVar18].flag_data == '\0'));\n          pdVar10 = def->exports;\n          pbVar12->archive_next = pbVar17;\n          pdVar10[lVar18].internal_name = pcVar14;\n          pbVar17 = pbVar12;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < def->num_exports);\n  }" if (parenthesized_expression "(0 < def->num_exports)" ( (binary_expression "0 < def->num_exports" number_literal < (field_expression "def->num_exports" identifier -> field_identifier)) )) (compound_statement "{\n    lVar18 = 0;\n    do {\n      if (pep_def_file->exports[lVar18].flag_private == '\0') {\n        pbVar2 = info->hash;\n        pdVar10 = def->exports + lVar18;\n        pcVar14 = pdVar10->internal_name;\n        pdVar10->internal_name = pdVar10->name;\n        lVar11 = bfd_link_hash_lookup(pbVar2,pcVar14,0,0,0);\n        if (((lVar11 == 0) || (*(char *)(lVar11 + 0x42) != 'j')) ||\n           (*(long *)(lVar11 + 0x28) != 0x2b4598)) {\n          if ((pep_details->underscored != 0) && (*pcVar14 != '@')) {\n            sVar8 = strlen(pcVar14);\n            pcVar9 = (char *)xmalloc(sVar8 + 2);\n            sprintf(pcVar9,"_%s",pcVar14);\n            lVar11 = bfd_link_hash_lookup(info->hash,pcVar9,0,0,0);\n            free(pcVar9);\n            if ((lVar11 != 0) &&\n               ((*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          pbVar12 = make_one(def->exports + lVar18,parent,\n                             (uint)(def->exports[lVar18].flag_data == '\0'));\n          pdVar10 = def->exports;\n          pbVar12->archive_next = pbVar17;\n          pdVar10[lVar18].internal_name = pcVar14;\n          pbVar17 = pbVar12;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < def->num_exports);\n  }" { (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n      if (pep_def_file->exports[lVar18].flag_private == '\0') {\n        pbVar2 = info->hash;\n        pdVar10 = def->exports + lVar18;\n        pcVar14 = pdVar10->internal_name;\n        pdVar10->internal_name = pdVar10->name;\n        lVar11 = bfd_link_hash_lookup(pbVar2,pcVar14,0,0,0);\n        if (((lVar11 == 0) || (*(char *)(lVar11 + 0x42) != 'j')) ||\n           (*(long *)(lVar11 + 0x28) != 0x2b4598)) {\n          if ((pep_details->underscored != 0) && (*pcVar14 != '@')) {\n            sVar8 = strlen(pcVar14);\n            pcVar9 = (char *)xmalloc(sVar8 + 2);\n            sprintf(pcVar9,"_%s",pcVar14);\n            lVar11 = bfd_link_hash_lookup(info->hash,pcVar9,0,0,0);\n            free(pcVar9);\n            if ((lVar11 != 0) &&\n               ((*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          pbVar12 = make_one(def->exports + lVar18,parent,\n                             (uint)(def->exports[lVar18].flag_data == '\0'));\n          pdVar10 = def->exports;\n          pbVar12->archive_next = pbVar17;\n          pdVar10[lVar18].internal_name = pcVar14;\n          pbVar17 = pbVar12;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < def->num_exports);" do (compound_statement "{\n      if (pep_def_file->exports[lVar18].flag_private == '\0') {\n        pbVar2 = info->hash;\n        pdVar10 = def->exports + lVar18;\n        pcVar14 = pdVar10->internal_name;\n        pdVar10->internal_name = pdVar10->name;\n        lVar11 = bfd_link_hash_lookup(pbVar2,pcVar14,0,0,0);\n        if (((lVar11 == 0) || (*(char *)(lVar11 + 0x42) != 'j')) ||\n           (*(long *)(lVar11 + 0x28) != 0x2b4598)) {\n          if ((pep_details->underscored != 0) && (*pcVar14 != '@')) {\n            sVar8 = strlen(pcVar14);\n            pcVar9 = (char *)xmalloc(sVar8 + 2);\n            sprintf(pcVar9,"_%s",pcVar14);\n            lVar11 = bfd_link_hash_lookup(info->hash,pcVar9,0,0,0);\n            free(pcVar9);\n            if ((lVar11 != 0) &&\n               ((*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          pbVar12 = make_one(def->exports + lVar18,parent,\n                             (uint)(def->exports[lVar18].flag_data == '\0'));\n          pdVar10 = def->exports;\n          pbVar12->archive_next = pbVar17;\n          pdVar10[lVar18].internal_name = pcVar14;\n          pbVar17 = pbVar12;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    }" { (if_statement "if (pep_def_file->exports[lVar18].flag_private == '\0') {\n        pbVar2 = info->hash;\n        pdVar10 = def->exports + lVar18;\n        pcVar14 = pdVar10->internal_name;\n        pdVar10->internal_name = pdVar10->name;\n        lVar11 = bfd_link_hash_lookup(pbVar2,pcVar14,0,0,0);\n        if (((lVar11 == 0) || (*(char *)(lVar11 + 0x42) != 'j')) ||\n           (*(long *)(lVar11 + 0x28) != 0x2b4598)) {\n          if ((pep_details->underscored != 0) && (*pcVar14 != '@')) {\n            sVar8 = strlen(pcVar14);\n            pcVar9 = (char *)xmalloc(sVar8 + 2);\n            sprintf(pcVar9,"_%s",pcVar14);\n            lVar11 = bfd_link_hash_lookup(info->hash,pcVar9,0,0,0);\n            free(pcVar9);\n            if ((lVar11 != 0) &&\n               ((*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          pbVar12 = make_one(def->exports + lVar18,parent,\n                             (uint)(def->exports[lVar18].flag_data == '\0'));\n          pdVar10 = def->exports;\n          pbVar12->archive_next = pbVar17;\n          pdVar10[lVar18].internal_name = pcVar14;\n          pbVar17 = pbVar12;\n        }\n      }" if (parenthesized_expression "(pep_def_file->exports[lVar18].flag_private == '\0')" ( (binary_expression "pep_def_file->exports[lVar18].flag_private == '\0'" (field_expression "pep_def_file->exports[lVar18].flag_private" (subscript_expression "pep_def_file->exports[lVar18]" (field_expression "pep_def_file->exports" identifier -> field_identifier) [ identifier ]) . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pbVar2 = info->hash;\n        pdVar10 = def->exports + lVar18;\n        pcVar14 = pdVar10->internal_name;\n        pdVar10->internal_name = pdVar10->name;\n        lVar11 = bfd_link_hash_lookup(pbVar2,pcVar14,0,0,0);\n        if (((lVar11 == 0) || (*(char *)(lVar11 + 0x42) != 'j')) ||\n           (*(long *)(lVar11 + 0x28) != 0x2b4598)) {\n          if ((pep_details->underscored != 0) && (*pcVar14 != '@')) {\n            sVar8 = strlen(pcVar14);\n            pcVar9 = (char *)xmalloc(sVar8 + 2);\n            sprintf(pcVar9,"_%s",pcVar14);\n            lVar11 = bfd_link_hash_lookup(info->hash,pcVar9,0,0,0);\n            free(pcVar9);\n            if ((lVar11 != 0) &&\n               ((*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          pbVar12 = make_one(def->exports + lVar18,parent,\n                             (uint)(def->exports[lVar18].flag_data == '\0'));\n          pdVar10 = def->exports;\n          pbVar12->archive_next = pbVar17;\n          pdVar10[lVar18].internal_name = pcVar14;\n          pbVar17 = pbVar12;\n        }\n      }" { (expression_statement "pbVar2 = info->hash;" (assignment_expression "pbVar2 = info->hash" identifier = (field_expression "info->hash" identifier -> field_identifier)) ;) (expression_statement "pdVar10 = def->exports + lVar18;" (assignment_expression "pdVar10 = def->exports + lVar18" identifier = (binary_expression "def->exports + lVar18" (field_expression "def->exports" identifier -> field_identifier) + identifier)) ;) (expression_statement "pcVar14 = pdVar10->internal_name;" (assignment_expression "pcVar14 = pdVar10->internal_name" identifier = (field_expression "pdVar10->internal_name" identifier -> field_identifier)) ;) (expression_statement "pdVar10->internal_name = pdVar10->name;" (assignment_expression "pdVar10->internal_name = pdVar10->name" (field_expression "pdVar10->internal_name" identifier -> field_identifier) = (field_expression "pdVar10->name" identifier -> field_identifier)) ;) (expression_statement "lVar11 = bfd_link_hash_lookup(pbVar2,pcVar14,0,0,0);" (assignment_expression "lVar11 = bfd_link_hash_lookup(pbVar2,pcVar14,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(pbVar2,pcVar14,0,0,0)" identifier (argument_list "(pbVar2,pcVar14,0,0,0)" ( identifier , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if (((lVar11 == 0) || (*(char *)(lVar11 + 0x42) != 'j')) ||\n           (*(long *)(lVar11 + 0x28) != 0x2b4598)) {\n          if ((pep_details->underscored != 0) && (*pcVar14 != '@')) {\n            sVar8 = strlen(pcVar14);\n            pcVar9 = (char *)xmalloc(sVar8 + 2);\n            sprintf(pcVar9,"_%s",pcVar14);\n            lVar11 = bfd_link_hash_lookup(info->hash,pcVar9,0,0,0);\n            free(pcVar9);\n            if ((lVar11 != 0) &&\n               ((*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          pbVar12 = make_one(def->exports + lVar18,parent,\n                             (uint)(def->exports[lVar18].flag_data == '\0'));\n          pdVar10 = def->exports;\n          pbVar12->archive_next = pbVar17;\n          pdVar10[lVar18].internal_name = pcVar14;\n          pbVar17 = pbVar12;\n        }" if (parenthesized_expression "(((lVar11 == 0) || (*(char *)(lVar11 + 0x42) != 'j')) ||\n           (*(long *)(lVar11 + 0x28) != 0x2b4598))" ( (binary_expression "((lVar11 == 0) || (*(char *)(lVar11 + 0x42) != 'j')) ||\n           (*(long *)(lVar11 + 0x28) != 0x2b4598)" (parenthesized_expression "((lVar11 == 0) || (*(char *)(lVar11 + 0x42) != 'j'))" ( (binary_expression "(lVar11 == 0) || (*(char *)(lVar11 + 0x42) != 'j')" (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(char *)(lVar11 + 0x42) != 'j')" ( (binary_expression "*(char *)(lVar11 + 0x42) != 'j'" (pointer_expression "*(char *)(lVar11 + 0x42)" * (cast_expression "(char *)(lVar11 + 0x42)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x42)" ( (binary_expression "lVar11 + 0x42" identifier + number_literal) )))) != (char_literal "'j'" ' character ')) ))) )) || (parenthesized_expression "(*(long *)(lVar11 + 0x28) != 0x2b4598)" ( (binary_expression "*(long *)(lVar11 + 0x28) != 0x2b4598" (pointer_expression "*(long *)(lVar11 + 0x28)" * (cast_expression "(long *)(lVar11 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x28)" ( (binary_expression "lVar11 + 0x28" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          if ((pep_details->underscored != 0) && (*pcVar14 != '@')) {\n            sVar8 = strlen(pcVar14);\n            pcVar9 = (char *)xmalloc(sVar8 + 2);\n            sprintf(pcVar9,"_%s",pcVar14);\n            lVar11 = bfd_link_hash_lookup(info->hash,pcVar9,0,0,0);\n            free(pcVar9);\n            if ((lVar11 != 0) &&\n               ((*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          pbVar12 = make_one(def->exports + lVar18,parent,\n                             (uint)(def->exports[lVar18].flag_data == '\0'));\n          pdVar10 = def->exports;\n          pbVar12->archive_next = pbVar17;\n          pdVar10[lVar18].internal_name = pcVar14;\n          pbVar17 = pbVar12;\n        }" { (if_statement "if ((pep_details->underscored != 0) && (*pcVar14 != '@')) {\n            sVar8 = strlen(pcVar14);\n            pcVar9 = (char *)xmalloc(sVar8 + 2);\n            sprintf(pcVar9,"_%s",pcVar14);\n            lVar11 = bfd_link_hash_lookup(info->hash,pcVar9,0,0,0);\n            free(pcVar9);\n            if ((lVar11 != 0) &&\n               ((*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }" if (parenthesized_expression "((pep_details->underscored != 0) && (*pcVar14 != '@'))" ( (binary_expression "(pep_details->underscored != 0) && (*pcVar14 != '@')" (parenthesized_expression "(pep_details->underscored != 0)" ( (binary_expression "pep_details->underscored != 0" (field_expression "pep_details->underscored" identifier -> field_identifier) != number_literal) )) && (parenthesized_expression "(*pcVar14 != '@')" ( (binary_expression "*pcVar14 != '@'" (pointer_expression "*pcVar14" * identifier) != (char_literal "'@'" ' character ')) ))) )) (compound_statement "{\n            sVar8 = strlen(pcVar14);\n            pcVar9 = (char *)xmalloc(sVar8 + 2);\n            sprintf(pcVar9,"_%s",pcVar14);\n            lVar11 = bfd_link_hash_lookup(info->hash,pcVar9,0,0,0);\n            free(pcVar9);\n            if ((lVar11 != 0) &&\n               ((*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }" { (expression_statement "sVar8 = strlen(pcVar14);" (assignment_expression "sVar8 = strlen(pcVar14)" identifier = (call_expression "strlen(pcVar14)" identifier (argument_list "(pcVar14)" ( identifier )))) ;) (expression_statement "pcVar9 = (char *)xmalloc(sVar8 + 2);" (assignment_expression "pcVar9 = (char *)xmalloc(sVar8 + 2)" identifier = (cast_expression "(char *)xmalloc(sVar8 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar8 + 2)" identifier (argument_list "(sVar8 + 2)" ( (binary_expression "sVar8 + 2" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar9,"_%s",pcVar14);" (call_expression "sprintf(pcVar9,"_%s",pcVar14)" identifier (argument_list "(pcVar9,"_%s",pcVar14)" ( identifier , (string_literal ""_%s"" " string_content ") , identifier ))) ;) (expression_statement "lVar11 = bfd_link_hash_lookup(info->hash,pcVar9,0,0,0);" (assignment_expression "lVar11 = bfd_link_hash_lookup(info->hash,pcVar9,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(info->hash,pcVar9,0,0,0)" identifier (argument_list "(info->hash,pcVar9,0,0,0)" ( (field_expression "info->hash" identifier -> field_identifier) , identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "free(pcVar9);" (call_expression "free(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (if_statement "if ((lVar11 != 0) &&\n               ((*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;" if (parenthesized_expression "((lVar11 != 0) &&\n               ((*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598))))" ( (binary_expression "(lVar11 != 0) &&\n               ((*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598)))" (parenthesized_expression "(lVar11 != 0)" ( (binary_expression "lVar11 != 0" identifier != number_literal) )) && (parenthesized_expression "((*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598)))" ( (parenthesized_expression "(*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598))" ( (binary_expression "*(char *)(lVar11 + 0x42) == 'j' && (*(long *)(lVar11 + 0x28) == 0x2b4598)" (binary_expression "*(char *)(lVar11 + 0x42) == 'j'" (pointer_expression "*(char *)(lVar11 + 0x42)" * (cast_expression "(char *)(lVar11 + 0x42)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x42)" ( (binary_expression "lVar11 + 0x42" identifier + number_literal) )))) == (char_literal "'j'" ' character ')) && (parenthesized_expression "(*(long *)(lVar11 + 0x28) == 0x2b4598)" ( (binary_expression "*(long *)(lVar11 + 0x28) == 0x2b4598" (pointer_expression "*(long *)(lVar11 + 0x28)" * (cast_expression "(long *)(lVar11 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar11 + 0x28)" ( (binary_expression "lVar11 + 0x28" identifier + number_literal) )))) == number_literal) ))) )) ))) )) (goto_statement "goto LAB_00150bcd;" goto statement_identifier ;)) })) (expression_statement "pbVar12 = make_one(def->exports + lVar18,parent,\n                             (uint)(def->exports[lVar18].flag_data == '\0'));" (assignment_expression "pbVar12 = make_one(def->exports + lVar18,parent,\n                             (uint)(def->exports[lVar18].flag_data == '\0'))" identifier = (call_expression "make_one(def->exports + lVar18,parent,\n                             (uint)(def->exports[lVar18].flag_data == '\0'))" identifier (argument_list "(def->exports + lVar18,parent,\n                             (uint)(def->exports[lVar18].flag_data == '\0'))" ( (binary_expression "def->exports + lVar18" (field_expression "def->exports" identifier -> field_identifier) + identifier) , identifier , (call_expression "(uint)(def->exports[lVar18].flag_data == '\0')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(def->exports[lVar18].flag_data == '\0')" ( (binary_expression "def->exports[lVar18].flag_data == '\0'" (field_expression "def->exports[lVar18].flag_data" (subscript_expression "def->exports[lVar18]" (field_expression "def->exports" identifier -> field_identifier) [ identifier ]) . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )))) ;) (expression_statement "pdVar10 = def->exports;" (assignment_expression "pdVar10 = def->exports" identifier = (field_expression "def->exports" identifier -> field_identifier)) ;) (expression_statement "pbVar12->archive_next = pbVar17;" (assignment_expression "pbVar12->archive_next = pbVar17" (field_expression "pbVar12->archive_next" identifier -> field_identifier) = identifier) ;) (expression_statement "pdVar10[lVar18].internal_name = pcVar14;" (assignment_expression "pdVar10[lVar18].internal_name = pcVar14" (field_expression "pdVar10[lVar18].internal_name" (subscript_expression "pdVar10[lVar18]" identifier [ identifier ]) . field_identifier) = identifier) ;) (expression_statement "pbVar17 = pbVar12;" (assignment_expression "pbVar17 = pbVar12" identifier = identifier) ;) })) })) (labeled_statement "LAB_00150bcd:\n      lVar18 = lVar18 + 1;" statement_identifier : (expression_statement "lVar18 = lVar18 + 1;" (assignment_expression "lVar18 = lVar18 + 1" identifier = (binary_expression "lVar18 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "((int)lVar18 < def->num_exports)" ( (binary_expression "(int)lVar18 < def->num_exports" (cast_expression "(int)lVar18" ( (type_descriptor "int" primitive_type) ) identifier) < (field_expression "def->num_exports" identifier -> field_identifier)) )) ;) })) (expression_statement "pbVar12 = make_tail(parent);" (assignment_expression "pbVar12 = make_tail(parent)" identifier = (call_expression "make_tail(parent)" identifier (argument_list "(parent)" ( identifier )))) ;) (if_statement "if ((pbVar6 != (bfd *)0x0) && (pbVar12 != (bfd *)0x0)) {\n    pbVar6->archive_next = pbVar17;\n    pbVar12->archive_next = pbVar6;\n    iVar4 = bfd_set_archive_head(parent,pbVar12);\n    if (iVar4 == 0) {\n      einfo("%X%P: bfd_set_archive_head: %E\n");\n    }\n    iVar4 = bfd_close(parent);\n    if (iVar4 == 0) {\n      einfo("%X%P: bfd_close %s: %E\n",impfilename);\n    }\n    do {\n      pbVar12 = pbVar12->archive_next;\n      bfd_close();\n    } while (pbVar12 != (bfd *)0x0);\n  }" if (parenthesized_expression "((pbVar6 != (bfd *)0x0) && (pbVar12 != (bfd *)0x0))" ( (binary_expression "(pbVar6 != (bfd *)0x0) && (pbVar12 != (bfd *)0x0)" (parenthesized_expression "(pbVar6 != (bfd *)0x0)" ( (binary_expression "pbVar6 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pbVar12 != (bfd *)0x0)" ( (binary_expression "pbVar12 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    pbVar6->archive_next = pbVar17;\n    pbVar12->archive_next = pbVar6;\n    iVar4 = bfd_set_archive_head(parent,pbVar12);\n    if (iVar4 == 0) {\n      einfo("%X%P: bfd_set_archive_head: %E\n");\n    }\n    iVar4 = bfd_close(parent);\n    if (iVar4 == 0) {\n      einfo("%X%P: bfd_close %s: %E\n",impfilename);\n    }\n    do {\n      pbVar12 = pbVar12->archive_next;\n      bfd_close();\n    } while (pbVar12 != (bfd *)0x0);\n  }" { (expression_statement "pbVar6->archive_next = pbVar17;" (assignment_expression "pbVar6->archive_next = pbVar17" (field_expression "pbVar6->archive_next" identifier -> field_identifier) = identifier) ;) (expression_statement "pbVar12->archive_next = pbVar6;" (assignment_expression "pbVar12->archive_next = pbVar6" (field_expression "pbVar12->archive_next" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar4 = bfd_set_archive_head(parent,pbVar12);" (assignment_expression "iVar4 = bfd_set_archive_head(parent,pbVar12)" identifier = (call_expression "bfd_set_archive_head(parent,pbVar12)" identifier (argument_list "(parent,pbVar12)" ( identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n      einfo("%X%P: bfd_set_archive_head: %E\n");\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      einfo("%X%P: bfd_set_archive_head: %E\n");\n    }" { (expression_statement "einfo("%X%P: bfd_set_archive_head: %E\n");" (call_expression "einfo("%X%P: bfd_set_archive_head: %E\n")" identifier (argument_list "("%X%P: bfd_set_archive_head: %E\n")" ( (string_literal ""%X%P: bfd_set_archive_head: %E\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "iVar4 = bfd_close(parent);" (assignment_expression "iVar4 = bfd_close(parent)" identifier = (call_expression "bfd_close(parent)" identifier (argument_list "(parent)" ( identifier )))) ;) (if_statement "if (iVar4 == 0) {\n      einfo("%X%P: bfd_close %s: %E\n",impfilename);\n    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      einfo("%X%P: bfd_close %s: %E\n",impfilename);\n    }" { (expression_statement "einfo("%X%P: bfd_close %s: %E\n",impfilename);" (call_expression "einfo("%X%P: bfd_close %s: %E\n",impfilename)" identifier (argument_list "("%X%P: bfd_close %s: %E\n",impfilename)" ( (string_literal ""%X%P: bfd_close %s: %E\n"" " string_content escape_sequence ") , identifier ))) ;) })) (do_statement "do {\n      pbVar12 = pbVar12->archive_next;\n      bfd_close();\n    } while (pbVar12 != (bfd *)0x0);" do (compound_statement "{\n      pbVar12 = pbVar12->archive_next;\n      bfd_close();\n    }" { (expression_statement "pbVar12 = pbVar12->archive_next;" (assignment_expression "pbVar12 = pbVar12->archive_next" identifier = (field_expression "pbVar12->archive_next" identifier -> field_identifier)) ;) (expression_statement "bfd_close();" (call_expression "bfd_close()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(pbVar12 != (bfd *)0x0)" ( (binary_expression "pbVar12 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001509a0(long *param_1,undefined8 param_2,long param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  int iVar3;\n  byte *pbVar4;\n  long lVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  size_t sVar8;\n  char *__s;\n  undefined8 *puVar9;\n  long lVar10;\n  undefined8 *puVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  long lVar14;\n  undefined8 uVar15;\n  char *pcVar16;\n  undefined8 *puVar17;\n  long lVar18;\n  bool bVar19;\n  \n  DAT_002b5b30 = *param_1;\n  if (*param_1 == 0) {\n    DAT_002b5b30 = DAT_002b5b68;\n  }\n  pbVar4 = (byte *)xstrdup();\n  bVar1 = *pbVar4;\n  DAT_002b5b28 = pbVar4;\n  while (bVar1 != 0) {\n    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar4 = 0x5f;\n    }\n    pbVar4 = pbVar4 + 1;\n    bVar1 = *pbVar4;\n  }\n  unlink_if_ordinary(param_2);\n  lVar5 = bfd_openw(param_2,0);\n  if (lVar5 == 0) {\n    uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);\nLAB_00150d81:\n    FUN_00129380(uVar13,param_2);\n    return;\n  }\n  if (DAT_002b6158 != 0) {\n    uVar13 = dcgettext(0,"Creating library file: %s\n",5);\n    FUN_001292e0(uVar13,param_2);\n  }\n  bfd_set_format(lVar5,2);\n  *(byte *)(lVar5 + 0x47) = *(byte *)(lVar5 + 0x47) | 0x80;\n  lVar6 = FUN_0014eb10(lVar5);\n  puVar17 = (undefined8 *)0x0;\n  puVar7 = DAT_002b5b50;\n  for (puVar9 = *(undefined8 **)(param_3 + 0x60); DAT_002b5b50 = puVar7, puVar9 != (undefined8 *)0x0\n      ; puVar9 = (undefined8 *)puVar9[0x1e]) {\n    puVar11 = puVar17;\n    if (puVar7 != (undefined8 *)0x0) {\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }\n    puVar17 = puVar11;\n    puVar7 = DAT_002b5b50;\n  }\n  if (0 < (int)param_1[8]) {\n    lVar18 = 0;\n    do {\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < (int)param_1[8]);\n  }\n  lVar18 = FUN_0014ee50(lVar5);\n  if ((lVar6 != 0) && (lVar18 != 0)) {\n    *(undefined8 **)(lVar6 + 0xd8) = puVar17;\n    *(long *)(lVar18 + 0xd8) = lVar6;\n    iVar3 = bfd_set_archive_head(lVar5,lVar18);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }\n    iVar3 = bfd_close(lVar5);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }\n    do {\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    } while (lVar18 != 0);\n  }\n  return;\n}\n\n" (function_definition "void FUN_001509a0(long *param_1,undefined8 param_2,long param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  int iVar3;\n  byte *pbVar4;\n  long lVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  size_t sVar8;\n  char *__s;\n  undefined8 *puVar9;\n  long lVar10;\n  undefined8 *puVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  long lVar14;\n  undefined8 uVar15;\n  char *pcVar16;\n  undefined8 *puVar17;\n  long lVar18;\n  bool bVar19;\n  \n  DAT_002b5b30 = *param_1;\n  if (*param_1 == 0) {\n    DAT_002b5b30 = DAT_002b5b68;\n  }\n  pbVar4 = (byte *)xstrdup();\n  bVar1 = *pbVar4;\n  DAT_002b5b28 = pbVar4;\n  while (bVar1 != 0) {\n    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar4 = 0x5f;\n    }\n    pbVar4 = pbVar4 + 1;\n    bVar1 = *pbVar4;\n  }\n  unlink_if_ordinary(param_2);\n  lVar5 = bfd_openw(param_2,0);\n  if (lVar5 == 0) {\n    uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);\nLAB_00150d81:\n    FUN_00129380(uVar13,param_2);\n    return;\n  }\n  if (DAT_002b6158 != 0) {\n    uVar13 = dcgettext(0,"Creating library file: %s\n",5);\n    FUN_001292e0(uVar13,param_2);\n  }\n  bfd_set_format(lVar5,2);\n  *(byte *)(lVar5 + 0x47) = *(byte *)(lVar5 + 0x47) | 0x80;\n  lVar6 = FUN_0014eb10(lVar5);\n  puVar17 = (undefined8 *)0x0;\n  puVar7 = DAT_002b5b50;\n  for (puVar9 = *(undefined8 **)(param_3 + 0x60); DAT_002b5b50 = puVar7, puVar9 != (undefined8 *)0x0\n      ; puVar9 = (undefined8 *)puVar9[0x1e]) {\n    puVar11 = puVar17;\n    if (puVar7 != (undefined8 *)0x0) {\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }\n    puVar17 = puVar11;\n    puVar7 = DAT_002b5b50;\n  }\n  if (0 < (int)param_1[8]) {\n    lVar18 = 0;\n    do {\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < (int)param_1[8]);\n  }\n  lVar18 = FUN_0014ee50(lVar5);\n  if ((lVar6 != 0) && (lVar18 != 0)) {\n    *(undefined8 **)(lVar6 + 0xd8) = puVar17;\n    *(long *)(lVar18 + 0xd8) = lVar6;\n    iVar3 = bfd_set_archive_head(lVar5,lVar18);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }\n    iVar3 = bfd_close(lVar5);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }\n    do {\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    } while (lVar18 != 0);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001509a0(long *param_1,undefined8 param_2,long param_3)" identifier (parameter_list "(long *param_1,undefined8 param_2,long param_3)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  int iVar3;\n  byte *pbVar4;\n  long lVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  size_t sVar8;\n  char *__s;\n  undefined8 *puVar9;\n  long lVar10;\n  undefined8 *puVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  long lVar14;\n  undefined8 uVar15;\n  char *pcVar16;\n  undefined8 *puVar17;\n  long lVar18;\n  bool bVar19;\n  \n  DAT_002b5b30 = *param_1;\n  if (*param_1 == 0) {\n    DAT_002b5b30 = DAT_002b5b68;\n  }\n  pbVar4 = (byte *)xstrdup();\n  bVar1 = *pbVar4;\n  DAT_002b5b28 = pbVar4;\n  while (bVar1 != 0) {\n    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar4 = 0x5f;\n    }\n    pbVar4 = pbVar4 + 1;\n    bVar1 = *pbVar4;\n  }\n  unlink_if_ordinary(param_2);\n  lVar5 = bfd_openw(param_2,0);\n  if (lVar5 == 0) {\n    uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);\nLAB_00150d81:\n    FUN_00129380(uVar13,param_2);\n    return;\n  }\n  if (DAT_002b6158 != 0) {\n    uVar13 = dcgettext(0,"Creating library file: %s\n",5);\n    FUN_001292e0(uVar13,param_2);\n  }\n  bfd_set_format(lVar5,2);\n  *(byte *)(lVar5 + 0x47) = *(byte *)(lVar5 + 0x47) | 0x80;\n  lVar6 = FUN_0014eb10(lVar5);\n  puVar17 = (undefined8 *)0x0;\n  puVar7 = DAT_002b5b50;\n  for (puVar9 = *(undefined8 **)(param_3 + 0x60); DAT_002b5b50 = puVar7, puVar9 != (undefined8 *)0x0\n      ; puVar9 = (undefined8 *)puVar9[0x1e]) {\n    puVar11 = puVar17;\n    if (puVar7 != (undefined8 *)0x0) {\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }\n    puVar17 = puVar11;\n    puVar7 = DAT_002b5b50;\n  }\n  if (0 < (int)param_1[8]) {\n    lVar18 = 0;\n    do {\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < (int)param_1[8]);\n  }\n  lVar18 = FUN_0014ee50(lVar5);\n  if ((lVar6 != 0) && (lVar18 != 0)) {\n    *(undefined8 **)(lVar6 + 0xd8) = puVar17;\n    *(long *)(lVar18 + 0xd8) = lVar6;\n    iVar3 = bfd_set_archive_head(lVar5,lVar18);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }\n    iVar3 = bfd_close(lVar5);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }\n    do {\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    } while (lVar18 != 0);\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "undefined8 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar15;" type_identifier identifier ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "undefined8 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar19;" primitive_type identifier ;) (expression_statement "DAT_002b5b30 = *param_1;" (assignment_expression "DAT_002b5b30 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*param_1 == 0) {\n    DAT_002b5b30 = DAT_002b5b68;\n  }" if (parenthesized_expression "(*param_1 == 0)" ( (binary_expression "*param_1 == 0" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n    DAT_002b5b30 = DAT_002b5b68;\n  }" { (expression_statement "DAT_002b5b30 = DAT_002b5b68;" (assignment_expression "DAT_002b5b30 = DAT_002b5b68" identifier = identifier) ;) })) (expression_statement "pbVar4 = (byte *)xstrdup();" (assignment_expression "pbVar4 = (byte *)xstrdup()" identifier = (cast_expression "(byte *)xstrdup()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xstrdup()" identifier (argument_list "()" ( ))))) ;) (expression_statement "bVar1 = *pbVar4;" (assignment_expression "bVar1 = *pbVar4" identifier = (pointer_expression "*pbVar4" * identifier)) ;) (expression_statement "DAT_002b5b28 = pbVar4;" (assignment_expression "DAT_002b5b28 = pbVar4" identifier = identifier) ;) (while_statement "while (bVar1 != 0) {\n    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar4 = 0x5f;\n    }\n    pbVar4 = pbVar4 + 1;\n    bVar1 = *pbVar4;\n  }" while (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar4 = 0x5f;\n    }\n    pbVar4 = pbVar4 + 1;\n    bVar1 = *pbVar4;\n  }" { (if_statement "if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar4 = 0x5f;\n    }" if (parenthesized_expression "((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0)" ( (binary_expression "(_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar1 * 2] & 0x8c)" ( (binary_expression "_sch_istable[(ulong)bVar1 * 2] & 0x8c" (subscript_expression "_sch_istable[(ulong)bVar1 * 2]" identifier [ (binary_expression "(ulong)bVar1 * 2" (cast_expression "(ulong)bVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      *pbVar4 = 0x5f;\n    }" { (expression_statement "*pbVar4 = 0x5f;" (assignment_expression "*pbVar4 = 0x5f" (pointer_expression "*pbVar4" * identifier) = number_literal) ;) })) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *pbVar4;" (assignment_expression "bVar1 = *pbVar4" identifier = (pointer_expression "*pbVar4" * identifier)) ;) })) (expression_statement "unlink_if_ordinary(param_2);" (call_expression "unlink_if_ordinary(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (expression_statement "lVar5 = bfd_openw(param_2,0);" (assignment_expression "lVar5 = bfd_openw(param_2,0)" identifier = (call_expression "bfd_openw(param_2,0)" identifier (argument_list "(param_2,0)" ( identifier , number_literal )))) ;) (if_statement "if (lVar5 == 0) {\n    uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);\nLAB_00150d81:\n    FUN_00129380(uVar13,param_2);\n    return;\n  }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);\nLAB_00150d81:\n    FUN_00129380(uVar13,param_2);\n    return;\n  }" { (expression_statement "uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);" (assignment_expression "uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5)" identifier (argument_list "(0,"%X%P: can\'t open .lib file: %s\n",5)" ( number_literal , (string_literal ""%X%P: can\'t open .lib file: %s\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (labeled_statement "LAB_00150d81:\n    FUN_00129380(uVar13,param_2);" statement_identifier : (expression_statement "FUN_00129380(uVar13,param_2);" (call_expression "FUN_00129380(uVar13,param_2)" identifier (argument_list "(uVar13,param_2)" ( identifier , identifier ))) ;)) (return_statement "return;" return ;) })) (if_statement "if (DAT_002b6158 != 0) {\n    uVar13 = dcgettext(0,"Creating library file: %s\n",5);\n    FUN_001292e0(uVar13,param_2);\n  }" if (parenthesized_expression "(DAT_002b6158 != 0)" ( (binary_expression "DAT_002b6158 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar13 = dcgettext(0,"Creating library file: %s\n",5);\n    FUN_001292e0(uVar13,param_2);\n  }" { (expression_statement "uVar13 = dcgettext(0,"Creating library file: %s\n",5);" (assignment_expression "uVar13 = dcgettext(0,"Creating library file: %s\n",5)" identifier = (call_expression "dcgettext(0,"Creating library file: %s\n",5)" identifier (argument_list "(0,"Creating library file: %s\n",5)" ( number_literal , (string_literal ""Creating library file: %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_001292e0(uVar13,param_2);" (call_expression "FUN_001292e0(uVar13,param_2)" identifier (argument_list "(uVar13,param_2)" ( identifier , identifier ))) ;) })) (expression_statement "bfd_set_format(lVar5,2);" (call_expression "bfd_set_format(lVar5,2)" identifier (argument_list "(lVar5,2)" ( identifier , number_literal ))) ;) (expression_statement "*(byte *)(lVar5 + 0x47) = *(byte *)(lVar5 + 0x47) | 0x80;" (assignment_expression "*(byte *)(lVar5 + 0x47) = *(byte *)(lVar5 + 0x47) | 0x80" (pointer_expression "*(byte *)(lVar5 + 0x47)" * (cast_expression "(byte *)(lVar5 + 0x47)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x47)" ( (binary_expression "lVar5 + 0x47" identifier + number_literal) )))) = (binary_expression "*(byte *)(lVar5 + 0x47) | 0x80" (pointer_expression "*(byte *)(lVar5 + 0x47)" * (cast_expression "(byte *)(lVar5 + 0x47)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x47)" ( (binary_expression "lVar5 + 0x47" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "lVar6 = FUN_0014eb10(lVar5);" (assignment_expression "lVar6 = FUN_0014eb10(lVar5)" identifier = (call_expression "FUN_0014eb10(lVar5)" identifier (argument_list "(lVar5)" ( identifier )))) ;) (expression_statement "puVar17 = (undefined8 *)0x0;" (assignment_expression "puVar17 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar7 = DAT_002b5b50;" (assignment_expression "puVar7 = DAT_002b5b50" identifier = identifier) ;) (for_statement "for (puVar9 = *(undefined8 **)(param_3 + 0x60); DAT_002b5b50 = puVar7, puVar9 != (undefined8 *)0x0\n      ; puVar9 = (undefined8 *)puVar9[0x1e]) {\n    puVar11 = puVar17;\n    if (puVar7 != (undefined8 *)0x0) {\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }\n    puVar17 = puVar11;\n    puVar7 = DAT_002b5b50;\n  }" for ( (assignment_expression "puVar9 = *(undefined8 **)(param_3 + 0x60)" identifier = (pointer_expression "*(undefined8 **)(param_3 + 0x60)" * (cast_expression "(undefined8 **)(param_3 + 0x60)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x60)" ( (binary_expression "param_3 + 0x60" identifier + number_literal) ))))) ; (comma_expression "DAT_002b5b50 = puVar7, puVar9 != (undefined8 *)0x0" (assignment_expression "DAT_002b5b50 = puVar7" identifier = identifier) , (binary_expression "puVar9 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar9 = (undefined8 *)puVar9[0x1e]" identifier = (cast_expression "(undefined8 *)puVar9[0x1e]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[0x1e]" identifier [ number_literal ]))) ) (compound_statement "{\n    puVar11 = puVar17;\n    if (puVar7 != (undefined8 *)0x0) {\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }\n    puVar17 = puVar11;\n    puVar7 = DAT_002b5b50;\n  }" { (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" identifier = identifier) ;) (if_statement "if (puVar7 != (undefined8 *)0x0) {\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }" if (parenthesized_expression "(puVar7 != (undefined8 *)0x0)" ( (binary_expression "puVar7 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }" { (do_statement "do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));" do (compound_statement "{\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      }" { (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (if_statement "if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }" if (parenthesized_expression "(*(int *)(puVar7 + 2) == 2)" ( (binary_expression "*(int *)(puVar7 + 2) == 2" (pointer_expression "*(int *)(puVar7 + 2)" * (cast_expression "(int *)(puVar7 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 2)" ( (binary_expression "puVar7 + 2" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }" { (expression_statement "iVar3 = filename_cmp(*puVar7,*puVar9);" (assignment_expression "iVar3 = filename_cmp(*puVar7,*puVar9)" identifier = (call_expression "filename_cmp(*puVar7,*puVar9)" identifier (argument_list "(*puVar7,*puVar9)" ( (pointer_expression "*puVar7" * identifier) , (pointer_expression "*puVar9" * identifier) )))) ;) (expression_statement "bVar19 = iVar3 == 0;" (assignment_expression "bVar19 = iVar3 == 0" identifier = (binary_expression "iVar3 == 0" identifier == number_literal)) ;) (expression_statement "bVar2 = !bVar19;" (assignment_expression "bVar2 = !bVar19" identifier = (unary_expression "!bVar19" ! identifier)) ;) })) (expression_statement "puVar7 = (undefined8 *)puVar7[1];" (assignment_expression "puVar7 = (undefined8 *)puVar7[1]" identifier = (cast_expression "(undefined8 *)puVar7[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "((puVar7 != (undefined8 *)0x0) && (bVar2))" ( (binary_expression "(puVar7 != (undefined8 *)0x0) && (bVar2)" (parenthesized_expression "(puVar7 != (undefined8 *)0x0)" ( (binary_expression "puVar7 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar2)" ( identifier ))) )) ;) (if_statement "if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }" if (parenthesized_expression "(bVar19)" ( identifier )) (compound_statement "{\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }" { (expression_statement "puVar7 = (undefined8 *)puVar9[0x1a];" (assignment_expression "puVar7 = (undefined8 *)puVar9[0x1a]" identifier = (cast_expression "(undefined8 *)puVar9[0x1a]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[0x1a]" identifier [ number_literal ]))) ;) (if_statement "if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }" if (parenthesized_expression "((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0)" ( (binary_expression "(undefined8 *)puVar9[0x1a] == (undefined8 *)0x0" (cast_expression "(undefined8 *)puVar9[0x1a]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[0x1a]" identifier [ number_literal ])) == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar7 = puVar9;\n        }" { (expression_statement "puVar7 = puVar9;" (assignment_expression "puVar7 = puVar9" identifier = identifier) ;) })) (expression_statement "puVar7 = (undefined8 *)bfd_openr(*puVar7,0);" (assignment_expression "puVar7 = (undefined8 *)bfd_openr(*puVar7,0)" identifier = (cast_expression "(undefined8 *)bfd_openr(*puVar7,0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_openr(*puVar7,0)" identifier (argument_list "(*puVar7,0)" ( (pointer_expression "*puVar7" * identifier) , number_literal ))))) ;) (if_statement "if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }" if (parenthesized_expression "(puVar7 == (undefined8 *)0x0)" ( (binary_expression "puVar7 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }" { (expression_statement "param_2 = *puVar9;" (assignment_expression "param_2 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);" (assignment_expression "uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: bfd_openr %s: %E\n",5)" identifier (argument_list "(0,"%X%P: bfd_openr %s: %E\n",5)" ( number_literal , (string_literal ""%X%P: bfd_openr %s: %E\n"" " string_content escape_sequence ") , number_literal )))) ;) (goto_statement "goto LAB_00150d81;" goto statement_identifier ;) })) (expression_statement "puVar11 = puVar7;" (assignment_expression "puVar11 = puVar7" identifier = identifier) ;) (if_statement "if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }" if (parenthesized_expression "(puVar9[0x1a] != 0)" ( (binary_expression "puVar9[0x1a] != 0" (subscript_expression "puVar9[0x1a]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }" { (expression_statement "iVar3 = bfd_check_format_matches(puVar7,2,0);" (assignment_expression "iVar3 = bfd_check_format_matches(puVar7,2,0)" identifier = (call_expression "bfd_check_format_matches(puVar7,2,0)" identifier (argument_list "(puVar7,2,0)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }" { (expression_statement "uVar13 = *puVar9;" (assignment_expression "uVar13 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";" (assignment_expression "pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file"" identifier = (string_literal ""%X%P: %s(%s): can\'t find member in non-archive file"" " string_content escape_sequence string_content ")) ;) (expression_statement "uVar15 = *(undefined8 *)puVar9[0x1a];" (assignment_expression "uVar15 = *(undefined8 *)puVar9[0x1a]" identifier = (pointer_expression "*(undefined8 *)puVar9[0x1a]" * (cast_expression "(undefined8 *)puVar9[0x1a]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[0x1a]" identifier [ number_literal ])))) ;) (labeled_statement "LAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);" statement_identifier : (expression_statement "uVar12 = dcgettext(0,pcVar16,5);" (assignment_expression "uVar12 = dcgettext(0,pcVar16,5)" identifier = (call_expression "dcgettext(0,pcVar16,5)" identifier (argument_list "(0,pcVar16,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_00129380(uVar12,uVar15,uVar13);" (call_expression "FUN_00129380(uVar12,uVar15,uVar13)" identifier (argument_list "(uVar12,uVar15,uVar13)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "puVar11 = (undefined8 *)0x0;" (assignment_expression "puVar11 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);" do (compound_statement "{\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          }" { (expression_statement "puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);" (assignment_expression "puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11)" identifier = (cast_expression "(undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_openr_next_archived_file(puVar7,puVar11)" identifier (argument_list "(puVar7,puVar11)" ( identifier , identifier ))))) ;) (if_statement "if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }" if (parenthesized_expression "(puVar11 == (undefined8 *)0x0)" ( (binary_expression "puVar11 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }" { (expression_statement "uVar13 = *puVar9;" (assignment_expression "uVar13 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "pcVar16 = "%X%P: %s(%s): can\'t find member in archive";" (assignment_expression "pcVar16 = "%X%P: %s(%s): can\'t find member in archive"" identifier = (string_literal ""%X%P: %s(%s): can\'t find member in archive"" " string_content escape_sequence string_content ")) ;) (expression_statement "uVar15 = *(undefined8 *)puVar9[0x1a];" (assignment_expression "uVar15 = *(undefined8 *)puVar9[0x1a]" identifier = (pointer_expression "*(undefined8 *)puVar9[0x1a]" * (cast_expression "(undefined8 *)puVar9[0x1a]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[0x1a]" identifier [ number_literal ])))) ;) (goto_statement "goto LAB_00150d14;" goto statement_identifier ;) })) (expression_statement "iVar3 = filename_cmp(*puVar11);" (assignment_expression "iVar3 = filename_cmp(*puVar11)" identifier = (call_expression "filename_cmp(*puVar11)" identifier (argument_list "(*puVar11)" ( (pointer_expression "*puVar11" * identifier) )))) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) })) (expression_statement "puVar11[0x1b] = puVar17;" (assignment_expression "puVar11[0x1b] = puVar17" (subscript_expression "puVar11[0x1b]" identifier [ number_literal ]) = identifier) ;) })) })) (expression_statement "puVar17 = puVar11;" (assignment_expression "puVar17 = puVar11" identifier = identifier) ;) (expression_statement "puVar7 = DAT_002b5b50;" (assignment_expression "puVar7 = DAT_002b5b50" identifier = identifier) ;) })) (if_statement "if (0 < (int)param_1[8]) {\n    lVar18 = 0;\n    do {\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < (int)param_1[8]);\n  }" if (parenthesized_expression "(0 < (int)param_1[8])" ( (binary_expression "0 < (int)param_1[8]" number_literal < (cast_expression "(int)param_1[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) )) (compound_statement "{\n    lVar18 = 0;\n    do {\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < (int)param_1[8]);\n  }" { (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < (int)param_1[8]);" do (compound_statement "{\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    }" { (expression_statement "lVar14 = lVar18 * 0x28;" (assignment_expression "lVar14 = lVar18 * 0x28" identifier = (binary_expression "lVar18 * 0x28" identifier * number_literal)) ;) (if_statement "if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }" if (parenthesized_expression "(*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0')" ( (binary_expression "*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0'" (pointer_expression "*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14)" * (cast_expression "(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14)" ( (binary_expression "*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14" (binary_expression "*(long *)(DAT_002b5af8 + 0x48) + 0x20" (pointer_expression "*(long *)(DAT_002b5af8 + 0x48)" * (cast_expression "(long *)(DAT_002b5af8 + 0x48)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5af8 + 0x48)" ( (binary_expression "DAT_002b5af8 + 0x48" identifier + number_literal) )))) + number_literal) + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }" { (expression_statement "uVar13 = *(undefined8 *)(param_3 + 0x28);" (assignment_expression "uVar13 = *(undefined8 *)(param_3 + 0x28)" identifier = (pointer_expression "*(undefined8 *)(param_3 + 0x28)" * (cast_expression "(undefined8 *)(param_3 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar9 = (undefined8 *)(param_1[9] + lVar14);" (assignment_expression "puVar9 = (undefined8 *)(param_1[9] + lVar14)" identifier = (cast_expression "(undefined8 *)(param_1[9] + lVar14)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[9] + lVar14)" ( (binary_expression "param_1[9] + lVar14" (subscript_expression "param_1[9]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "pcVar16 = (char *)puVar9[1];" (assignment_expression "pcVar16 = (char *)puVar9[1]" identifier = (cast_expression "(char *)puVar9[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar9[1] = *puVar9;" (assignment_expression "puVar9[1] = *puVar9" (subscript_expression "puVar9[1]" identifier [ number_literal ]) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);" (assignment_expression "lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(uVar13,pcVar16,0,0,0)" identifier (argument_list "(uVar13,pcVar16,0,0,0)" ( identifier , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }" if (parenthesized_expression "(((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598))" ( (binary_expression "((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)" (parenthesized_expression "((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j'))" ( (binary_expression "(lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')" (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(char *)(lVar10 + 0x42) != 'j')" ( (binary_expression "*(char *)(lVar10 + 0x42) != 'j'" (pointer_expression "*(char *)(lVar10 + 0x42)" * (cast_expression "(char *)(lVar10 + 0x42)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x42)" ( (binary_expression "lVar10 + 0x42" identifier + number_literal) )))) != (char_literal "'j'" ' character ')) ))) )) || (parenthesized_expression "(*(long *)(lVar10 + 0x28) != 0x2b4598)" ( (binary_expression "*(long *)(lVar10 + 0x28) != 0x2b4598" (pointer_expression "*(long *)(lVar10 + 0x28)" * (cast_expression "(long *)(lVar10 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x28)" ( (binary_expression "lVar10 + 0x28" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }" { (if_statement "if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }" if (parenthesized_expression "((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@'))" ( (binary_expression "(*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')" (parenthesized_expression "(*(int *)(DAT_002b5b90 + 0x1c) != 0)" ( (binary_expression "*(int *)(DAT_002b5b90 + 0x1c) != 0" (pointer_expression "*(int *)(DAT_002b5b90 + 0x1c)" * (cast_expression "(int *)(DAT_002b5b90 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5b90 + 0x1c)" ( (binary_expression "DAT_002b5b90 + 0x1c" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*pcVar16 != '@')" ( (binary_expression "*pcVar16 != '@'" (pointer_expression "*pcVar16" * identifier) != (char_literal "'@'" ' character ')) ))) )) (compound_statement "{\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }" { (expression_statement "sVar8 = strlen(pcVar16);" (assignment_expression "sVar8 = strlen(pcVar16)" identifier = (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "__s = (char *)xmalloc(sVar8 + 2);" (assignment_expression "__s = (char *)xmalloc(sVar8 + 2)" identifier = (cast_expression "(char *)xmalloc(sVar8 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar8 + 2)" identifier (argument_list "(sVar8 + 2)" ( (binary_expression "sVar8 + 2" identifier + number_literal) ))))) ;) (expression_statement "sprintf(__s,"_%s",pcVar16);" (call_expression "sprintf(__s,"_%s",pcVar16)" identifier (argument_list "(__s,"_%s",pcVar16)" ( identifier , (string_literal ""_%s"" " string_content ") , identifier ))) ;) (expression_statement "lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);" (assignment_expression "lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0)" identifier = (call_expression "bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0)" identifier (argument_list "(*(undefined8 *)(param_3 + 0x28),__s,0,0,0)" ( (pointer_expression "*(undefined8 *)(param_3 + 0x28)" * (cast_expression "(undefined8 *)(param_3 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x28)" ( (binary_expression "param_3 + 0x28" identifier + number_literal) )))) , identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) (if_statement "if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;" if (parenthesized_expression "((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))" ( (binary_expression "(lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598)))" (parenthesized_expression "(lVar10 != 0)" ( (binary_expression "lVar10 != 0" identifier != number_literal) )) && (parenthesized_expression "((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598)))" ( (parenthesized_expression "(*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))" ( (binary_expression "*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598)" (binary_expression "*(char *)(lVar10 + 0x42) == 'j'" (pointer_expression "*(char *)(lVar10 + 0x42)" * (cast_expression "(char *)(lVar10 + 0x42)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x42)" ( (binary_expression "lVar10 + 0x42" identifier + number_literal) )))) == (char_literal "'j'" ' character ')) && (parenthesized_expression "(*(long *)(lVar10 + 0x28) == 0x2b4598)" ( (binary_expression "*(long *)(lVar10 + 0x28) == 0x2b4598" (pointer_expression "*(long *)(lVar10 + 0x28)" * (cast_expression "(long *)(lVar10 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x28)" ( (binary_expression "lVar10 + 0x28" identifier + number_literal) )))) == number_literal) ))) )) ))) )) (goto_statement "goto LAB_00150bcd;" goto statement_identifier ;)) })) (expression_statement "puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');" (assignment_expression "puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0')" identifier = (cast_expression "(undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0')" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0')" identifier (argument_list "(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0')" ( (binary_expression "param_1[9] + lVar14" (subscript_expression "param_1[9]" identifier [ number_literal ]) + identifier) , identifier , (binary_expression "*(char *)(param_1[9] + lVar14 + 0x23) == '\0'" (pointer_expression "*(char *)(param_1[9] + lVar14 + 0x23)" * (cast_expression "(char *)(param_1[9] + lVar14 + 0x23)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[9] + lVar14 + 0x23)" ( (binary_expression "param_1[9] + lVar14 + 0x23" (binary_expression "param_1[9] + lVar14" (subscript_expression "param_1[9]" identifier [ number_literal ]) + identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))))) ;) (expression_statement "lVar10 = param_1[9];" (assignment_expression "lVar10 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "puVar9[0x1b] = puVar17;" (assignment_expression "puVar9[0x1b] = puVar17" (subscript_expression "puVar9[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(char **)(lVar10 + 8 + lVar14) = pcVar16;" (assignment_expression "*(char **)(lVar10 + 8 + lVar14) = pcVar16" (pointer_expression "*(char **)(lVar10 + 8 + lVar14)" * (cast_expression "(char **)(lVar10 + 8 + lVar14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar10 + 8 + lVar14)" ( (binary_expression "lVar10 + 8 + lVar14" (binary_expression "lVar10 + 8" identifier + number_literal) + identifier) )))) = identifier) ;) (expression_statement "puVar17 = puVar9;" (assignment_expression "puVar17 = puVar9" identifier = identifier) ;) })) })) (labeled_statement "LAB_00150bcd:\n      lVar18 = lVar18 + 1;" statement_identifier : (expression_statement "lVar18 = lVar18 + 1;" (assignment_expression "lVar18 = lVar18 + 1" identifier = (binary_expression "lVar18 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "((int)lVar18 < (int)param_1[8])" ( (binary_expression "(int)lVar18 < (int)param_1[8]" (cast_expression "(int)lVar18" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_1[8]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[8]" identifier [ number_literal ]))) )) ;) })) (expression_statement "lVar18 = FUN_0014ee50(lVar5);" (assignment_expression "lVar18 = FUN_0014ee50(lVar5)" identifier = (call_expression "FUN_0014ee50(lVar5)" identifier (argument_list "(lVar5)" ( identifier )))) ;) (if_statement "if ((lVar6 != 0) && (lVar18 != 0)) {\n    *(undefined8 **)(lVar6 + 0xd8) = puVar17;\n    *(long *)(lVar18 + 0xd8) = lVar6;\n    iVar3 = bfd_set_archive_head(lVar5,lVar18);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }\n    iVar3 = bfd_close(lVar5);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }\n    do {\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    } while (lVar18 != 0);\n  }" if (parenthesized_expression "((lVar6 != 0) && (lVar18 != 0))" ( (binary_expression "(lVar6 != 0) && (lVar18 != 0)" (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "(lVar18 != 0)" ( (binary_expression "lVar18 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    *(undefined8 **)(lVar6 + 0xd8) = puVar17;\n    *(long *)(lVar18 + 0xd8) = lVar6;\n    iVar3 = bfd_set_archive_head(lVar5,lVar18);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }\n    iVar3 = bfd_close(lVar5);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }\n    do {\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    } while (lVar18 != 0);\n  }" { (expression_statement "*(undefined8 **)(lVar6 + 0xd8) = puVar17;" (assignment_expression "*(undefined8 **)(lVar6 + 0xd8) = puVar17" (pointer_expression "*(undefined8 **)(lVar6 + 0xd8)" * (cast_expression "(undefined8 **)(lVar6 + 0xd8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 0xd8)" ( (binary_expression "lVar6 + 0xd8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(long *)(lVar18 + 0xd8) = lVar6;" (assignment_expression "*(long *)(lVar18 + 0xd8) = lVar6" (pointer_expression "*(long *)(lVar18 + 0xd8)" * (cast_expression "(long *)(lVar18 + 0xd8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0xd8)" ( (binary_expression "lVar18 + 0xd8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = bfd_set_archive_head(lVar5,lVar18);" (assignment_expression "iVar3 = bfd_set_archive_head(lVar5,lVar18)" identifier = (call_expression "bfd_set_archive_head(lVar5,lVar18)" identifier (argument_list "(lVar5,lVar18)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }" { (expression_statement "FUN_00129380("%X%P: bfd_set_archive_head: %E\n");" (call_expression "FUN_00129380("%X%P: bfd_set_archive_head: %E\n")" identifier (argument_list "("%X%P: bfd_set_archive_head: %E\n")" ( (string_literal ""%X%P: bfd_set_archive_head: %E\n"" " string_content escape_sequence ") ))) ;) })) (expression_statement "iVar3 = bfd_close(lVar5);" (assignment_expression "iVar3 = bfd_close(lVar5)" identifier = (call_expression "bfd_close(lVar5)" identifier (argument_list "(lVar5)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }" { (expression_statement "FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);" (call_expression "FUN_00129380("%X%P: bfd_close %s: %E\n",param_2)" identifier (argument_list "("%X%P: bfd_close %s: %E\n",param_2)" ( (string_literal ""%X%P: bfd_close %s: %E\n"" " string_content escape_sequence ") , identifier ))) ;) })) (do_statement "do {\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    } while (lVar18 != 0);" do (compound_statement "{\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    }" { (expression_statement "lVar18 = *(long *)(lVar18 + 0xd8);" (assignment_expression "lVar18 = *(long *)(lVar18 + 0xd8)" identifier = (pointer_expression "*(long *)(lVar18 + 0xd8)" * (cast_expression "(long *)(lVar18 + 0xd8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar18 + 0xd8)" ( (binary_expression "lVar18 + 0xd8" identifier + number_literal) ))))) ;) (expression_statement "bfd_close();" (call_expression "bfd_close()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(lVar18 != 0)" ( (binary_expression "lVar18 != 0" identifier != number_literal) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 string_content escape_sequence ") , LIT )))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;)) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = (unary_expression ! IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( IDENT ))) )) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content ")) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content ")) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + IDENT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' character ')) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT , LIT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' character ')) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_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 (binary_expression IDENT + LIT) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) (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 IDENT != LIT) ))) )) (compound_statement { (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT ))) ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_001509a0(long *param_1,undefined8 param_2,long param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  int iVar3;\n  byte *pbVar4;\n  long lVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  size_t sVar8;\n  char *__s;\n  undefined8 *puVar9;\n  long lVar10;\n  undefined8 *puVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  long lVar14;\n  undefined8 uVar15;\n  char *pcVar16;\n  undefined8 *puVar17;\n  long lVar18;\n  bool bVar19;\n  \n  DAT_002b5b30 = *param_1;\n  if (*param_1 == 0) {\n    DAT_002b5b30 = DAT_002b5b68;\n  }\n  pbVar4 = (byte *)xstrdup();\n  bVar1 = *pbVar4;\n  DAT_002b5b28 = pbVar4;\n  while (bVar1 != 0) {\n    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar4 = 0x5f;\n    }\n    pbVar4 = pbVar4 + 1;\n    bVar1 = *pbVar4;\n  }\n  unlink_if_ordinary(param_2);\n  lVar5 = bfd_openw(param_2,0);\n  if (lVar5 == 0) {\n    uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);\nLAB_00150d81:\n    FUN_00129380(uVar13,param_2);\n    return;\n  }\n  if (DAT_002b6158 != 0) {\n    uVar13 = dcgettext(0,"Creating library file: %s\n",5);\n    FUN_001292e0(uVar13,param_2);\n  }\n  bfd_set_format(lVar5,2);\n  *(byte *)(lVar5 + 0x47) = *(byte *)(lVar5 + 0x47) | 0x80;\n  lVar6 = FUN_0014eb10(lVar5);\n  puVar17 = (undefined8 *)0x0;\n  puVar7 = DAT_002b5b50;\n  for (puVar9 = *(undefined8 **)(param_3 + 0x60); DAT_002b5b50 = puVar7, puVar9 != (undefined8 *)0x0\n      ; puVar9 = (undefined8 *)puVar9[0x1e]) {\n    puVar11 = puVar17;\n    if (puVar7 != (undefined8 *)0x0) {\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }\n    puVar17 = puVar11;\n    puVar7 = DAT_002b5b50;\n  }\n  if (0 < (int)param_1[8]) {\n    lVar18 = 0;\n    do {\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < (int)param_1[8]);\n  }\n  lVar18 = FUN_0014ee50(lVar5);\n  if ((lVar6 != 0) && (lVar18 != 0)) {\n    *(undefined8 **)(lVar6 + 0xd8) = puVar17;\n    *(long *)(lVar18 + 0xd8) = lVar6;\n    iVar3 = bfd_set_archive_head(lVar5,lVar18);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }\n    iVar3 = bfd_close(lVar5);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }\n    do {\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    } while (lVar18 != 0);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001509a0(long *param_1,undefined8 param_2,long param_3)" (identifier "FUN_001509a0") (parameter_list "(long *param_1,undefined8 param_2,long param_3)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) () ")"))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  int iVar3;\n  byte *pbVar4;\n  long lVar5;\n  long lVar6;\n  undefined8 *puVar7;\n  size_t sVar8;\n  char *__s;\n  undefined8 *puVar9;\n  long lVar10;\n  undefined8 *puVar11;\n  undefined8 uVar12;\n  undefined8 uVar13;\n  long lVar14;\n  undefined8 uVar15;\n  char *pcVar16;\n  undefined8 *puVar17;\n  long lVar18;\n  bool bVar19;\n  \n  DAT_002b5b30 = *param_1;\n  if (*param_1 == 0) {\n    DAT_002b5b30 = DAT_002b5b68;\n  }\n  pbVar4 = (byte *)xstrdup();\n  bVar1 = *pbVar4;\n  DAT_002b5b28 = pbVar4;\n  while (bVar1 != 0) {\n    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar4 = 0x5f;\n    }\n    pbVar4 = pbVar4 + 1;\n    bVar1 = *pbVar4;\n  }\n  unlink_if_ordinary(param_2);\n  lVar5 = bfd_openw(param_2,0);\n  if (lVar5 == 0) {\n    uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);\nLAB_00150d81:\n    FUN_00129380(uVar13,param_2);\n    return;\n  }\n  if (DAT_002b6158 != 0) {\n    uVar13 = dcgettext(0,"Creating library file: %s\n",5);\n    FUN_001292e0(uVar13,param_2);\n  }\n  bfd_set_format(lVar5,2);\n  *(byte *)(lVar5 + 0x47) = *(byte *)(lVar5 + 0x47) | 0x80;\n  lVar6 = FUN_0014eb10(lVar5);\n  puVar17 = (undefined8 *)0x0;\n  puVar7 = DAT_002b5b50;\n  for (puVar9 = *(undefined8 **)(param_3 + 0x60); DAT_002b5b50 = puVar7, puVar9 != (undefined8 *)0x0\n      ; puVar9 = (undefined8 *)puVar9[0x1e]) {\n    puVar11 = puVar17;\n    if (puVar7 != (undefined8 *)0x0) {\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }\n    puVar17 = puVar11;\n    puVar7 = DAT_002b5b50;\n  }\n  if (0 < (int)param_1[8]) {\n    lVar18 = 0;\n    do {\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < (int)param_1[8]);\n  }\n  lVar18 = FUN_0014ee50(lVar5);\n  if ((lVar6 != 0) && (lVar18 != 0)) {\n    *(undefined8 **)(lVar6 + 0xd8) = puVar17;\n    *(long *)(lVar18 + 0xd8) = lVar6;\n    iVar3 = bfd_set_archive_head(lVar5,lVar18);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }\n    iVar3 = bfd_close(lVar5);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }\n    do {\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    } while (lVar18 != 0);\n  }\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "byte *pbVar4;" (type_identifier "byte") (pointer_declarator "*pbVar4" (* "*") (identifier "pbVar4")) (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "undefined8 *puVar7;" (type_identifier "undefined8") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "size_t sVar8;" (primitive_type "size_t") (identifier "sVar8") (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "undefined8 *puVar9;" (type_identifier "undefined8") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "undefined8 *puVar11;" (type_identifier "undefined8") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined8 uVar12;" (type_identifier "undefined8") (identifier "uVar12") (; ";")) (declaration "undefined8 uVar13;" (type_identifier "undefined8") (identifier "uVar13") (; ";")) (declaration "long lVar14;" (sized_type_specifier "long" (long "long")) (identifier "lVar14") (; ";")) (declaration "undefined8 uVar15;" (type_identifier "undefined8") (identifier "uVar15") (; ";")) (declaration "char *pcVar16;" (primitive_type "char") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "undefined8 *puVar17;" (type_identifier "undefined8") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "long lVar18;" (sized_type_specifier "long" (long "long")) (identifier "lVar18") (; ";")) (declaration "bool bVar19;" (primitive_type "bool") (identifier "bVar19") (; ";")) (expression_statement "DAT_002b5b30 = *param_1;" (assignment_expression "DAT_002b5b30 = *param_1" (identifier "DAT_002b5b30") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (*param_1 == 0) {\n    DAT_002b5b30 = DAT_002b5b68;\n  }" (if "if") (parenthesized_expression "(*param_1 == 0)" (( "(") (binary_expression "*param_1 == 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    DAT_002b5b30 = DAT_002b5b68;\n  }" ({ "{") (expression_statement "DAT_002b5b30 = DAT_002b5b68;" (assignment_expression "DAT_002b5b30 = DAT_002b5b68" (identifier "DAT_002b5b30") (= "=") (identifier "DAT_002b5b68")) (; ";")) (} "}"))) (expression_statement "pbVar4 = (byte *)xstrdup();" (assignment_expression "pbVar4 = (byte *)xstrdup()" (identifier "pbVar4") (= "=") (cast_expression "(byte *)xstrdup()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xstrdup()" (identifier "xstrdup") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "bVar1 = *pbVar4;" (assignment_expression "bVar1 = *pbVar4" (identifier "bVar1") (= "=") (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4"))) (; ";")) (expression_statement "DAT_002b5b28 = pbVar4;" (assignment_expression "DAT_002b5b28 = pbVar4" (identifier "DAT_002b5b28") (= "=") (identifier "pbVar4")) (; ";")) (while_statement "while (bVar1 != 0) {\n    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar4 = 0x5f;\n    }\n    pbVar4 = pbVar4 + 1;\n    bVar1 = *pbVar4;\n  }" (while "while") (parenthesized_expression "(bVar1 != 0)" (( "(") (binary_expression "bVar1 != 0" (identifier "bVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar4 = 0x5f;\n    }\n    pbVar4 = pbVar4 + 1;\n    bVar1 = *pbVar4;\n  }" ({ "{") (if_statement "if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {\n      *pbVar4 = 0x5f;\n    }" (if "if") (parenthesized_expression "((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0)" (( "(") (binary_expression "(_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar1 * 2] & 0x8c)" (( "(") (binary_expression "_sch_istable[(ulong)bVar1 * 2] & 0x8c" (subscript_expression "_sch_istable[(ulong)bVar1 * 2]" (identifier "_sch_istable") ([ "[") (binary_expression "(ulong)bVar1 * 2" (cast_expression "(ulong)bVar1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar1")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "0x8c")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *pbVar4 = 0x5f;\n    }" ({ "{") (expression_statement "*pbVar4 = 0x5f;" (assignment_expression "*pbVar4 = 0x5f" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (= "=") (number_literal "0x5f")) (; ";")) (} "}"))) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" (identifier "pbVar4") (= "=") (binary_expression "pbVar4 + 1" (identifier "pbVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar1 = *pbVar4;" (assignment_expression "bVar1 = *pbVar4" (identifier "bVar1") (= "=") (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4"))) (; ";")) (} "}"))) (expression_statement "unlink_if_ordinary(param_2);" (call_expression "unlink_if_ordinary(param_2)" (identifier "unlink_if_ordinary") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (expression_statement "lVar5 = bfd_openw(param_2,0);" (assignment_expression "lVar5 = bfd_openw(param_2,0)" (identifier "lVar5") (= "=") (call_expression "bfd_openw(param_2,0)" (identifier "bfd_openw") (argument_list "(param_2,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (lVar5 == 0) {\n    uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);\nLAB_00150d81:\n    FUN_00129380(uVar13,param_2);\n    return;\n  }" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);\nLAB_00150d81:\n    FUN_00129380(uVar13,param_2);\n    return;\n  }" ({ "{") (expression_statement "uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);" (assignment_expression "uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5)" (identifier "dcgettext") (argument_list "(0,"%X%P: can\'t open .lib file: %s\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P: can\'t open .lib file: %s\n"" (" """) (string_content "%X%P: can") (escape_sequence "\'") (string_content "t open .lib file: %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (labeled_statement "LAB_00150d81:\n    FUN_00129380(uVar13,param_2);" (statement_identifier "LAB_00150d81") (: ":") (expression_statement "FUN_00129380(uVar13,param_2);" (call_expression "FUN_00129380(uVar13,param_2)" (identifier "FUN_00129380") (argument_list "(uVar13,param_2)" (( "(") (identifier "uVar13") (, ",") (identifier "param_2") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (DAT_002b6158 != 0) {\n    uVar13 = dcgettext(0,"Creating library file: %s\n",5);\n    FUN_001292e0(uVar13,param_2);\n  }" (if "if") (parenthesized_expression "(DAT_002b6158 != 0)" (( "(") (binary_expression "DAT_002b6158 != 0" (identifier "DAT_002b6158") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar13 = dcgettext(0,"Creating library file: %s\n",5);\n    FUN_001292e0(uVar13,param_2);\n  }" ({ "{") (expression_statement "uVar13 = dcgettext(0,"Creating library file: %s\n",5);" (assignment_expression "uVar13 = dcgettext(0,"Creating library file: %s\n",5)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"Creating library file: %s\n",5)" (identifier "dcgettext") (argument_list "(0,"Creating library file: %s\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Creating library file: %s\n"" (" """) (string_content "Creating library file: %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_001292e0(uVar13,param_2);" (call_expression "FUN_001292e0(uVar13,param_2)" (identifier "FUN_001292e0") (argument_list "(uVar13,param_2)" (( "(") (identifier "uVar13") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (expression_statement "bfd_set_format(lVar5,2);" (call_expression "bfd_set_format(lVar5,2)" (identifier "bfd_set_format") (argument_list "(lVar5,2)" (( "(") (identifier "lVar5") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "*(byte *)(lVar5 + 0x47) = *(byte *)(lVar5 + 0x47) | 0x80;" (assignment_expression "*(byte *)(lVar5 + 0x47) = *(byte *)(lVar5 + 0x47) | 0x80" (pointer_expression "*(byte *)(lVar5 + 0x47)" (* "*") (cast_expression "(byte *)(lVar5 + 0x47)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x47)" (( "(") (binary_expression "lVar5 + 0x47" (identifier "lVar5") (+ "+") (number_literal "0x47")) () ")")))) (= "=") (binary_expression "*(byte *)(lVar5 + 0x47) | 0x80" (pointer_expression "*(byte *)(lVar5 + 0x47)" (* "*") (cast_expression "(byte *)(lVar5 + 0x47)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x47)" (( "(") (binary_expression "lVar5 + 0x47" (identifier "lVar5") (+ "+") (number_literal "0x47")) () ")")))) (| "|") (number_literal "0x80"))) (; ";")) (expression_statement "lVar6 = FUN_0014eb10(lVar5);" (assignment_expression "lVar6 = FUN_0014eb10(lVar5)" (identifier "lVar6") (= "=") (call_expression "FUN_0014eb10(lVar5)" (identifier "FUN_0014eb10") (argument_list "(lVar5)" (( "(") (identifier "lVar5") () ")")))) (; ";")) (expression_statement "puVar17 = (undefined8 *)0x0;" (assignment_expression "puVar17 = (undefined8 *)0x0" (identifier "puVar17") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar7 = DAT_002b5b50;" (assignment_expression "puVar7 = DAT_002b5b50" (identifier "puVar7") (= "=") (identifier "DAT_002b5b50")) (; ";")) (for_statement "for (puVar9 = *(undefined8 **)(param_3 + 0x60); DAT_002b5b50 = puVar7, puVar9 != (undefined8 *)0x0\n      ; puVar9 = (undefined8 *)puVar9[0x1e]) {\n    puVar11 = puVar17;\n    if (puVar7 != (undefined8 *)0x0) {\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }\n    puVar17 = puVar11;\n    puVar7 = DAT_002b5b50;\n  }" (for "for") (( "(") (assignment_expression "puVar9 = *(undefined8 **)(param_3 + 0x60)" (identifier "puVar9") (= "=") (pointer_expression "*(undefined8 **)(param_3 + 0x60)" (* "*") (cast_expression "(undefined8 **)(param_3 + 0x60)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x60)" (( "(") (binary_expression "param_3 + 0x60" (identifier "param_3") (+ "+") (number_literal "0x60")) () ")"))))) (; ";") (comma_expression "DAT_002b5b50 = puVar7, puVar9 != (undefined8 *)0x0" (assignment_expression "DAT_002b5b50 = puVar7" (identifier "DAT_002b5b50") (= "=") (identifier "puVar7")) (, ",") (binary_expression "puVar9 != (undefined8 *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";") (assignment_expression "puVar9 = (undefined8 *)puVar9[0x1e]" (identifier "puVar9") (= "=") (cast_expression "(undefined8 *)puVar9[0x1e]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[0x1e]" (identifier "puVar9") ([ "[") (number_literal "0x1e") (] "]")))) () ")") (compound_statement "{\n    puVar11 = puVar17;\n    if (puVar7 != (undefined8 *)0x0) {\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }\n    puVar17 = puVar11;\n    puVar7 = DAT_002b5b50;\n  }" ({ "{") (expression_statement "puVar11 = puVar17;" (assignment_expression "puVar11 = puVar17" (identifier "puVar11") (= "=") (identifier "puVar17")) (; ";")) (if_statement "if (puVar7 != (undefined8 *)0x0) {\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }" (if "if") (parenthesized_expression "(puVar7 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar7 != (undefined8 *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));\n      if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }\n    }" ({ "{") (do_statement "do {\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));" (do "do") (compound_statement "{\n        bVar19 = false;\n        bVar2 = true;\n        if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }\n        puVar7 = (undefined8 *)puVar7[1];\n      }" ({ "{") (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" (identifier "bVar19") (= "=") (false "false")) (; ";")) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (if_statement "if (*(int *)(puVar7 + 2) == 2) {\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar7 + 2) == 2)" (( "(") (binary_expression "*(int *)(puVar7 + 2) == 2" (pointer_expression "*(int *)(puVar7 + 2)" (* "*") (cast_expression "(int *)(puVar7 + 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 2)" (( "(") (binary_expression "puVar7 + 2" (identifier "puVar7") (+ "+") (number_literal "2")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          iVar3 = filename_cmp(*puVar7,*puVar9);\n          bVar19 = iVar3 == 0;\n          bVar2 = !bVar19;\n        }" ({ "{") (expression_statement "iVar3 = filename_cmp(*puVar7,*puVar9);" (assignment_expression "iVar3 = filename_cmp(*puVar7,*puVar9)" (identifier "iVar3") (= "=") (call_expression "filename_cmp(*puVar7,*puVar9)" (identifier "filename_cmp") (argument_list "(*puVar7,*puVar9)" (( "(") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (, ",") (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) () ")")))) (; ";")) (expression_statement "bVar19 = iVar3 == 0;" (assignment_expression "bVar19 = iVar3 == 0" (identifier "bVar19") (= "=") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) (; ";")) (expression_statement "bVar2 = !bVar19;" (assignment_expression "bVar2 = !bVar19" (identifier "bVar2") (= "=") (unary_expression "!bVar19" (! "!") (identifier "bVar19"))) (; ";")) (} "}"))) (expression_statement "puVar7 = (undefined8 *)puVar7[1];" (assignment_expression "puVar7 = (undefined8 *)puVar7[1]" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)puVar7[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((puVar7 != (undefined8 *)0x0) && (bVar2))" (( "(") (binary_expression "(puVar7 != (undefined8 *)0x0) && (bVar2)" (parenthesized_expression "(puVar7 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar7 != (undefined8 *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")"))) () ")")) (; ";")) (if_statement "if (bVar19) {\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }" (if "if") (parenthesized_expression "(bVar19)" (( "(") (identifier "bVar19") () ")")) (compound_statement "{\n        puVar7 = (undefined8 *)puVar9[0x1a];\n        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }\n        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);\n        if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }\n        puVar11 = puVar7;\n        if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }\n        puVar11[0x1b] = puVar17;\n      }" ({ "{") (expression_statement "puVar7 = (undefined8 *)puVar9[0x1a];" (assignment_expression "puVar7 = (undefined8 *)puVar9[0x1a]" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)puVar9[0x1a]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[0x1a]" (identifier "puVar9") ([ "[") (number_literal "0x1a") (] "]")))) (; ";")) (if_statement "if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {\n          puVar7 = puVar9;\n        }" (if "if") (parenthesized_expression "((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0)" (( "(") (binary_expression "(undefined8 *)puVar9[0x1a] == (undefined8 *)0x0" (cast_expression "(undefined8 *)puVar9[0x1a]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[0x1a]" (identifier "puVar9") ([ "[") (number_literal "0x1a") (] "]"))) (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          puVar7 = puVar9;\n        }" ({ "{") (expression_statement "puVar7 = puVar9;" (assignment_expression "puVar7 = puVar9" (identifier "puVar7") (= "=") (identifier "puVar9")) (; ";")) (} "}"))) (expression_statement "puVar7 = (undefined8 *)bfd_openr(*puVar7,0);" (assignment_expression "puVar7 = (undefined8 *)bfd_openr(*puVar7,0)" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)bfd_openr(*puVar7,0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "bfd_openr(*puVar7,0)" (identifier "bfd_openr") (argument_list "(*puVar7,0)" (( "(") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (, ",") (number_literal "0") () ")"))))) (; ";")) (if_statement "if (puVar7 == (undefined8 *)0x0) {\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }" (if "if") (parenthesized_expression "(puVar7 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar7 == (undefined8 *)0x0" (identifier "puVar7") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          param_2 = *puVar9;\n          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);\n          goto LAB_00150d81;\n        }" ({ "{") (expression_statement "param_2 = *puVar9;" (assignment_expression "param_2 = *puVar9" (identifier "param_2") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);" (assignment_expression "uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"%X%P: bfd_openr %s: %E\n",5)" (identifier "dcgettext") (argument_list "(0,"%X%P: bfd_openr %s: %E\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P: bfd_openr %s: %E\n"" (" """) (string_content "%X%P: bfd_openr %s: %E") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (goto_statement "goto LAB_00150d81;" (goto "goto") (statement_identifier "LAB_00150d81") (; ";")) (} "}"))) (expression_statement "puVar11 = puVar7;" (assignment_expression "puVar11 = puVar7" (identifier "puVar11") (= "=") (identifier "puVar7")) (; ";")) (if_statement "if (puVar9[0x1a] != 0) {\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }" (if "if") (parenthesized_expression "(puVar9[0x1a] != 0)" (( "(") (binary_expression "puVar9[0x1a] != 0" (subscript_expression "puVar9[0x1a]" (identifier "puVar9") ([ "[") (number_literal "0x1a") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar3 = bfd_check_format_matches(puVar7,2,0);\n          if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }\n          puVar11 = (undefined8 *)0x0;\n          do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);\n        }" ({ "{") (expression_statement "iVar3 = bfd_check_format_matches(puVar7,2,0);" (assignment_expression "iVar3 = bfd_check_format_matches(puVar7,2,0)" (identifier "iVar3") (= "=") (call_expression "bfd_check_format_matches(puVar7,2,0)" (identifier "bfd_check_format_matches") (argument_list "(puVar7,2,0)" (( "(") (identifier "puVar7") (, ",") (number_literal "2") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar13 = *puVar9;\n            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";\n            uVar15 = *(undefined8 *)puVar9[0x1a];\nLAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);\n            FUN_00129380(uVar12,uVar15,uVar13);\n            return;\n          }" ({ "{") (expression_statement "uVar13 = *puVar9;" (assignment_expression "uVar13 = *puVar9" (identifier "uVar13") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";" (assignment_expression "pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file"" (identifier "pcVar16") (= "=") (string_literal ""%X%P: %s(%s): can\'t find member in non-archive file"" (" """) (string_content "%X%P: %s(%s): can") (escape_sequence "\'") (string_content "t find member in non-archive file") (" """))) (; ";")) (expression_statement "uVar15 = *(undefined8 *)puVar9[0x1a];" (assignment_expression "uVar15 = *(undefined8 *)puVar9[0x1a]" (identifier "uVar15") (= "=") (pointer_expression "*(undefined8 *)puVar9[0x1a]" (* "*") (cast_expression "(undefined8 *)puVar9[0x1a]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[0x1a]" (identifier "puVar9") ([ "[") (number_literal "0x1a") (] "]"))))) (; ";")) (labeled_statement "LAB_00150d14:\n            uVar12 = dcgettext(0,pcVar16,5);" (statement_identifier "LAB_00150d14") (: ":") (expression_statement "uVar12 = dcgettext(0,pcVar16,5);" (assignment_expression "uVar12 = dcgettext(0,pcVar16,5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,pcVar16,5)" (identifier "dcgettext") (argument_list "(0,pcVar16,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar16") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_00129380(uVar12,uVar15,uVar13);" (call_expression "FUN_00129380(uVar12,uVar15,uVar13)" (identifier "FUN_00129380") (argument_list "(uVar12,uVar15,uVar13)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar15") (, ",") (identifier "uVar13") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar11 = (undefined8 *)0x0;" (assignment_expression "puVar11 = (undefined8 *)0x0" (identifier "puVar11") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          } while (iVar3 != 0);" (do "do") (compound_statement "{\n            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);\n            if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }\n            iVar3 = filename_cmp(*puVar11);\n          }" ({ "{") (expression_statement "puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);" (assignment_expression "puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11)" (identifier "puVar11") (= "=") (cast_expression "(undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "bfd_openr_next_archived_file(puVar7,puVar11)" (identifier "bfd_openr_next_archived_file") (argument_list "(puVar7,puVar11)" (( "(") (identifier "puVar7") (, ",") (identifier "puVar11") () ")"))))) (; ";")) (if_statement "if (puVar11 == (undefined8 *)0x0) {\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }" (if "if") (parenthesized_expression "(puVar11 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar11 == (undefined8 *)0x0" (identifier "puVar11") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              uVar13 = *puVar9;\n              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";\n              uVar15 = *(undefined8 *)puVar9[0x1a];\n              goto LAB_00150d14;\n            }" ({ "{") (expression_statement "uVar13 = *puVar9;" (assignment_expression "uVar13 = *puVar9" (identifier "uVar13") (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "pcVar16 = "%X%P: %s(%s): can\'t find member in archive";" (assignment_expression "pcVar16 = "%X%P: %s(%s): can\'t find member in archive"" (identifier "pcVar16") (= "=") (string_literal ""%X%P: %s(%s): can\'t find member in archive"" (" """) (string_content "%X%P: %s(%s): can") (escape_sequence "\'") (string_content "t find member in archive") (" """))) (; ";")) (expression_statement "uVar15 = *(undefined8 *)puVar9[0x1a];" (assignment_expression "uVar15 = *(undefined8 *)puVar9[0x1a]" (identifier "uVar15") (= "=") (pointer_expression "*(undefined8 *)puVar9[0x1a]" (* "*") (cast_expression "(undefined8 *)puVar9[0x1a]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[0x1a]" (identifier "puVar9") ([ "[") (number_literal "0x1a") (] "]"))))) (; ";")) (goto_statement "goto LAB_00150d14;" (goto "goto") (statement_identifier "LAB_00150d14") (; ";")) (} "}"))) (expression_statement "iVar3 = filename_cmp(*puVar11);" (assignment_expression "iVar3 = filename_cmp(*puVar11)" (identifier "iVar3") (= "=") (call_expression "filename_cmp(*puVar11)" (identifier "filename_cmp") (argument_list "(*puVar11)" (( "(") (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "puVar11[0x1b] = puVar17;" (assignment_expression "puVar11[0x1b] = puVar17" (subscript_expression "puVar11[0x1b]" (identifier "puVar11") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (identifier "puVar17")) (; ";")) (} "}"))) (} "}"))) (expression_statement "puVar17 = puVar11;" (assignment_expression "puVar17 = puVar11" (identifier "puVar17") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "puVar7 = DAT_002b5b50;" (assignment_expression "puVar7 = DAT_002b5b50" (identifier "puVar7") (= "=") (identifier "DAT_002b5b50")) (; ";")) (} "}"))) (if_statement "if (0 < (int)param_1[8]) {\n    lVar18 = 0;\n    do {\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < (int)param_1[8]);\n  }" (if "if") (parenthesized_expression "(0 < (int)param_1[8])" (( "(") (binary_expression "0 < (int)param_1[8]" (number_literal "0") (< "<") (cast_expression "(int)param_1[8]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")))) () ")")) (compound_statement "{\n    lVar18 = 0;\n    do {\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < (int)param_1[8]);\n  }" ({ "{") (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" (identifier "lVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    } while ((int)lVar18 < (int)param_1[8]);" (do "do") (compound_statement "{\n      lVar14 = lVar18 * 0x28;\n      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }\nLAB_00150bcd:\n      lVar18 = lVar18 + 1;\n    }" ({ "{") (expression_statement "lVar14 = lVar18 * 0x28;" (assignment_expression "lVar14 = lVar18 * 0x28" (identifier "lVar14") (= "=") (binary_expression "lVar18 * 0x28" (identifier "lVar18") (* "*") (number_literal "0x28"))) (; ";")) (if_statement "if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }" (if "if") (parenthesized_expression "(*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0')" (( "(") (binary_expression "*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0'" (pointer_expression "*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14)" (* "*") (cast_expression "(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14)" (( "(") (binary_expression "*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14" (binary_expression "*(long *)(DAT_002b5af8 + 0x48) + 0x20" (pointer_expression "*(long *)(DAT_002b5af8 + 0x48)" (* "*") (cast_expression "(long *)(DAT_002b5af8 + 0x48)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002b5af8 + 0x48)" (( "(") (binary_expression "DAT_002b5af8 + 0x48" (identifier "DAT_002b5af8") (+ "+") (number_literal "0x48")) () ")")))) (+ "+") (number_literal "0x20")) (+ "+") (identifier "lVar14")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar13 = *(undefined8 *)(param_3 + 0x28);\n        puVar9 = (undefined8 *)(param_1[9] + lVar14);\n        pcVar16 = (char *)puVar9[1];\n        puVar9[1] = *puVar9;\n        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);\n        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }\n      }" ({ "{") (expression_statement "uVar13 = *(undefined8 *)(param_3 + 0x28);" (assignment_expression "uVar13 = *(undefined8 *)(param_3 + 0x28)" (identifier "uVar13") (= "=") (pointer_expression "*(undefined8 *)(param_3 + 0x28)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x28)" (( "(") (binary_expression "param_3 + 0x28" (identifier "param_3") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "puVar9 = (undefined8 *)(param_1[9] + lVar14);" (assignment_expression "puVar9 = (undefined8 *)(param_1[9] + lVar14)" (identifier "puVar9") (= "=") (cast_expression "(undefined8 *)(param_1[9] + lVar14)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[9] + lVar14)" (( "(") (binary_expression "param_1[9] + lVar14" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (+ "+") (identifier "lVar14")) () ")")))) (; ";")) (expression_statement "pcVar16 = (char *)puVar9[1];" (assignment_expression "pcVar16 = (char *)puVar9[1]" (identifier "pcVar16") (= "=") (cast_expression "(char *)puVar9[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar9[1] = *puVar9;" (assignment_expression "puVar9[1] = *puVar9" (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (expression_statement "lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);" (assignment_expression "lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0)" (identifier "lVar10") (= "=") (call_expression "bfd_link_hash_lookup(uVar13,pcVar16,0,0,0)" (identifier "bfd_link_hash_lookup") (argument_list "(uVar13,pcVar16,0,0,0)" (( "(") (identifier "uVar13") (, ",") (identifier "pcVar16") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }" (if "if") (parenthesized_expression "(((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598))" (( "(") (binary_expression "((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||\n           (*(long *)(lVar10 + 0x28) != 0x2b4598)" (parenthesized_expression "((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j'))" (( "(") (binary_expression "(lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')" (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(lVar10 + 0x42) != 'j')" (( "(") (binary_expression "*(char *)(lVar10 + 0x42) != 'j'" (pointer_expression "*(char *)(lVar10 + 0x42)" (* "*") (cast_expression "(char *)(lVar10 + 0x42)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x42)" (( "(") (binary_expression "lVar10 + 0x42" (identifier "lVar10") (+ "+") (number_literal "0x42")) () ")")))) (!= "!=") (char_literal "'j'" (' "'") (character "j") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(long *)(lVar10 + 0x28) != 0x2b4598)" (( "(") (binary_expression "*(long *)(lVar10 + 0x28) != 0x2b4598" (pointer_expression "*(long *)(lVar10 + 0x28)" (* "*") (cast_expression "(long *)(lVar10 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x28)" (( "(") (binary_expression "lVar10 + 0x28" (identifier "lVar10") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0x2b4598")) () ")"))) () ")")) (compound_statement "{\n          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }\n          puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');\n          lVar10 = param_1[9];\n          puVar9[0x1b] = puVar17;\n          *(char **)(lVar10 + 8 + lVar14) = pcVar16;\n          puVar17 = puVar9;\n        }" ({ "{") (if_statement "if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }" (if "if") (parenthesized_expression "((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@'))" (( "(") (binary_expression "(*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')" (parenthesized_expression "(*(int *)(DAT_002b5b90 + 0x1c) != 0)" (( "(") (binary_expression "*(int *)(DAT_002b5b90 + 0x1c) != 0" (pointer_expression "*(int *)(DAT_002b5b90 + 0x1c)" (* "*") (cast_expression "(int *)(DAT_002b5b90 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002b5b90 + 0x1c)" (( "(") (binary_expression "DAT_002b5b90 + 0x1c" (identifier "DAT_002b5b90") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*pcVar16 != '@')" (( "(") (binary_expression "*pcVar16 != '@'" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (!= "!=") (char_literal "'@'" (' "'") (character "@") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            sVar8 = strlen(pcVar16);\n            __s = (char *)xmalloc(sVar8 + 2);\n            sprintf(__s,"_%s",pcVar16);\n            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);\n            free(__s);\n            if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;\n          }" ({ "{") (expression_statement "sVar8 = strlen(pcVar16);" (assignment_expression "sVar8 = strlen(pcVar16)" (identifier "sVar8") (= "=") (call_expression "strlen(pcVar16)" (identifier "strlen") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")")))) (; ";")) (expression_statement "__s = (char *)xmalloc(sVar8 + 2);" (assignment_expression "__s = (char *)xmalloc(sVar8 + 2)" (identifier "__s") (= "=") (cast_expression "(char *)xmalloc(sVar8 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar8 + 2)" (identifier "xmalloc") (argument_list "(sVar8 + 2)" (( "(") (binary_expression "sVar8 + 2" (identifier "sVar8") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "sprintf(__s,"_%s",pcVar16);" (call_expression "sprintf(__s,"_%s",pcVar16)" (identifier "sprintf") (argument_list "(__s,"_%s",pcVar16)" (( "(") (identifier "__s") (, ",") (string_literal ""_%s"" (" """) (string_content "_%s") (" """)) (, ",") (identifier "pcVar16") () ")"))) (; ";")) (expression_statement "lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);" (assignment_expression "lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0)" (identifier "lVar10") (= "=") (call_expression "bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0)" (identifier "bfd_link_hash_lookup") (argument_list "(*(undefined8 *)(param_3 + 0x28),__s,0,0,0)" (( "(") (pointer_expression "*(undefined8 *)(param_3 + 0x28)" (* "*") (cast_expression "(undefined8 *)(param_3 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x28)" (( "(") (binary_expression "param_3 + 0x28" (identifier "param_3") (+ "+") (number_literal "0x28")) () ")")))) (, ",") (identifier "__s") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "free(__s);" (call_expression "free(__s)" (identifier "free") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";")) (if_statement "if ((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))\n            goto LAB_00150bcd;" (if "if") (parenthesized_expression "((lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))" (( "(") (binary_expression "(lVar10 != 0) &&\n               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598)))" (parenthesized_expression "(lVar10 != 0)" (( "(") (binary_expression "lVar10 != 0" (identifier "lVar10") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598)))" (( "(") (parenthesized_expression "(*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))" (( "(") (binary_expression "*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598)" (binary_expression "*(char *)(lVar10 + 0x42) == 'j'" (pointer_expression "*(char *)(lVar10 + 0x42)" (* "*") (cast_expression "(char *)(lVar10 + 0x42)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x42)" (( "(") (binary_expression "lVar10 + 0x42" (identifier "lVar10") (+ "+") (number_literal "0x42")) () ")")))) (== "==") (char_literal "'j'" (' "'") (character "j") (' "'"))) (&& "&&") (parenthesized_expression "(*(long *)(lVar10 + 0x28) == 0x2b4598)" (( "(") (binary_expression "*(long *)(lVar10 + 0x28) == 0x2b4598" (pointer_expression "*(long *)(lVar10 + 0x28)" (* "*") (cast_expression "(long *)(lVar10 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x28)" (( "(") (binary_expression "lVar10 + 0x28" (identifier "lVar10") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0x2b4598")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00150bcd;" (goto "goto") (statement_identifier "LAB_00150bcd") (; ";"))) (} "}"))) (expression_statement "puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');" (assignment_expression "puVar9 = (undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0')" (identifier "puVar9") (= "=") (cast_expression "(undefined8 *)\n                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0')" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0014e2a0(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0')" (identifier "FUN_0014e2a0") (argument_list "(param_1[9] + lVar14,lVar5,\n                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0')" (( "(") (binary_expression "param_1[9] + lVar14" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (+ "+") (identifier "lVar14")) (, ",") (identifier "lVar5") (, ",") (binary_expression "*(char *)(param_1[9] + lVar14 + 0x23) == '\0'" (pointer_expression "*(char *)(param_1[9] + lVar14 + 0x23)" (* "*") (cast_expression "(char *)(param_1[9] + lVar14 + 0x23)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[9] + lVar14 + 0x23)" (( "(") (binary_expression "param_1[9] + lVar14 + 0x23" (binary_expression "param_1[9] + lVar14" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (+ "+") (identifier "lVar14")) (+ "+") (number_literal "0x23")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))))) (; ";")) (expression_statement "lVar10 = param_1[9];" (assignment_expression "lVar10 = param_1[9]" (identifier "lVar10") (= "=") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "puVar9[0x1b] = puVar17;" (assignment_expression "puVar9[0x1b] = puVar17" (subscript_expression "puVar9[0x1b]" (identifier "puVar9") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (identifier "puVar17")) (; ";")) (expression_statement "*(char **)(lVar10 + 8 + lVar14) = pcVar16;" (assignment_expression "*(char **)(lVar10 + 8 + lVar14) = pcVar16" (pointer_expression "*(char **)(lVar10 + 8 + lVar14)" (* "*") (cast_expression "(char **)(lVar10 + 8 + lVar14)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar10 + 8 + lVar14)" (( "(") (binary_expression "lVar10 + 8 + lVar14" (binary_expression "lVar10 + 8" (identifier "lVar10") (+ "+") (number_literal "8")) (+ "+") (identifier "lVar14")) () ")")))) (= "=") (identifier "pcVar16")) (; ";")) (expression_statement "puVar17 = puVar9;" (assignment_expression "puVar17 = puVar9" (identifier "puVar17") (= "=") (identifier "puVar9")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00150bcd:\n      lVar18 = lVar18 + 1;" (statement_identifier "LAB_00150bcd") (: ":") (expression_statement "lVar18 = lVar18 + 1;" (assignment_expression "lVar18 = lVar18 + 1" (identifier "lVar18") (= "=") (binary_expression "lVar18 + 1" (identifier "lVar18") (+ "+") (number_literal "1"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "((int)lVar18 < (int)param_1[8])" (( "(") (binary_expression "(int)lVar18 < (int)param_1[8]" (cast_expression "(int)lVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar18")) (< "<") (cast_expression "(int)param_1[8]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")))) () ")")) (; ";")) (} "}"))) (expression_statement "lVar18 = FUN_0014ee50(lVar5);" (assignment_expression "lVar18 = FUN_0014ee50(lVar5)" (identifier "lVar18") (= "=") (call_expression "FUN_0014ee50(lVar5)" (identifier "FUN_0014ee50") (argument_list "(lVar5)" (( "(") (identifier "lVar5") () ")")))) (; ";")) (if_statement "if ((lVar6 != 0) && (lVar18 != 0)) {\n    *(undefined8 **)(lVar6 + 0xd8) = puVar17;\n    *(long *)(lVar18 + 0xd8) = lVar6;\n    iVar3 = bfd_set_archive_head(lVar5,lVar18);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }\n    iVar3 = bfd_close(lVar5);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }\n    do {\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    } while (lVar18 != 0);\n  }" (if "if") (parenthesized_expression "((lVar6 != 0) && (lVar18 != 0))" (( "(") (binary_expression "(lVar6 != 0) && (lVar18 != 0)" (parenthesized_expression "(lVar6 != 0)" (( "(") (binary_expression "lVar6 != 0" (identifier "lVar6") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(lVar18 != 0)" (( "(") (binary_expression "lVar18 != 0" (identifier "lVar18") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    *(undefined8 **)(lVar6 + 0xd8) = puVar17;\n    *(long *)(lVar18 + 0xd8) = lVar6;\n    iVar3 = bfd_set_archive_head(lVar5,lVar18);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }\n    iVar3 = bfd_close(lVar5);\n    if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }\n    do {\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    } while (lVar18 != 0);\n  }" ({ "{") (expression_statement "*(undefined8 **)(lVar6 + 0xd8) = puVar17;" (assignment_expression "*(undefined8 **)(lVar6 + 0xd8) = puVar17" (pointer_expression "*(undefined8 **)(lVar6 + 0xd8)" (* "*") (cast_expression "(undefined8 **)(lVar6 + 0xd8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar6 + 0xd8)" (( "(") (binary_expression "lVar6 + 0xd8" (identifier "lVar6") (+ "+") (number_literal "0xd8")) () ")")))) (= "=") (identifier "puVar17")) (; ";")) (expression_statement "*(long *)(lVar18 + 0xd8) = lVar6;" (assignment_expression "*(long *)(lVar18 + 0xd8) = lVar6" (pointer_expression "*(long *)(lVar18 + 0xd8)" (* "*") (cast_expression "(long *)(lVar18 + 0xd8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar18 + 0xd8)" (( "(") (binary_expression "lVar18 + 0xd8" (identifier "lVar18") (+ "+") (number_literal "0xd8")) () ")")))) (= "=") (identifier "lVar6")) (; ";")) (expression_statement "iVar3 = bfd_set_archive_head(lVar5,lVar18);" (assignment_expression "iVar3 = bfd_set_archive_head(lVar5,lVar18)" (identifier "iVar3") (= "=") (call_expression "bfd_set_archive_head(lVar5,lVar18)" (identifier "bfd_set_archive_head") (argument_list "(lVar5,lVar18)" (( "(") (identifier "lVar5") (, ",") (identifier "lVar18") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");\n    }" ({ "{") (expression_statement "FUN_00129380("%X%P: bfd_set_archive_head: %E\n");" (call_expression "FUN_00129380("%X%P: bfd_set_archive_head: %E\n")" (identifier "FUN_00129380") (argument_list "("%X%P: bfd_set_archive_head: %E\n")" (( "(") (string_literal ""%X%P: bfd_set_archive_head: %E\n"" (" """) (string_content "%X%P: bfd_set_archive_head: %E") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = bfd_close(lVar5);" (assignment_expression "iVar3 = bfd_close(lVar5)" (identifier "iVar3") (= "=") (call_expression "bfd_close(lVar5)" (identifier "bfd_close") (argument_list "(lVar5)" (( "(") (identifier "lVar5") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);\n    }" ({ "{") (expression_statement "FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);" (call_expression "FUN_00129380("%X%P: bfd_close %s: %E\n",param_2)" (identifier "FUN_00129380") (argument_list "("%X%P: bfd_close %s: %E\n",param_2)" (( "(") (string_literal ""%X%P: bfd_close %s: %E\n"" (" """) (string_content "%X%P: bfd_close %s: %E") (escape_sequence "\n") (" """)) (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (do_statement "do {\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    } while (lVar18 != 0);" (do "do") (compound_statement "{\n      lVar18 = *(long *)(lVar18 + 0xd8);\n      bfd_close();\n    }" ({ "{") (expression_statement "lVar18 = *(long *)(lVar18 + 0xd8);" (assignment_expression "lVar18 = *(long *)(lVar18 + 0xd8)" (identifier "lVar18") (= "=") (pointer_expression "*(long *)(lVar18 + 0xd8)" (* "*") (cast_expression "(long *)(lVar18 + 0xd8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar18 + 0xd8)" (( "(") (binary_expression "lVar18 + 0xd8" (identifier "lVar18") (+ "+") (number_literal "0xd8")) () ")"))))) (; ";")) (expression_statement "bfd_close();" (call_expression "bfd_close()" (identifier "bfd_close") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(lVar18 != 0)" (( "(") (binary_expression "lVar18 != 0" (identifier "lVar18") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *def,char *impfilename,type_2 *info)

{
  type_3 var_2;
  type_4 *pbVar2;
  bool bVar3;
  int var_17;
  type_3 *var_3;
  type_5 *var_6;
  type_5 *var_33;
  type_5 *var_19;
  size_t var_28;
  char *pcVar9;
  type_6 *pdVar10;
  long var_25;
  type_5 *var_13;
  type_5 *var_22;
  char *pcVar14;
  type_7 *var_14;
  char *pcVar16;
  type_5 *pbVar17;
  long var_23;
  bool bVar19;
  
  dll_filename = def->name;
  if (def->name == (char *)0x0) {
    dll_filename = dll_name;
  }
  var_3 = (type_3 *)var_1();
  var_2 = *var_3;
  dll_symname = (char *)var_3;
  while (var_2 != 0) {
    if ((_sch_istable[(type_8)var_2 * 2] & 0x8c) == 0) {
      *var_3 = 0x5f;
    }
    var_3 = var_3 + 1;
    var_2 = *var_3;
  }
  var_4(impfilename);
  var_6 = (type_5 *)var_5(impfilename,0);
  if (var_6 == (type_5 *)0x0) {
    pcVar14 = (char *)var_7(0,"%X%P: can\'t open .lib file: %s\n",5);
LAB_00150d81:
    var_8(pcVar14,impfilename);
    return;
  }
  if (var_9 != 0) {
    pcVar14 = (char *)var_7(0,"Creating library file: %s\n",5);
    var_10(pcVar14,impfilename);
  }
  var_11(var_6,2);
  var_6->field_0x47 = var_6->field_0x47 | 0x80;
  var_33 = var_12(var_6);
  pbVar17 = (type_5 *)0x0;
  var_14 = excludes;
  for (var_13 = info->input_bfds; excludes = var_14, var_13 != (type_5 *)0x0;
      var_13 = (var_13->link).next) {
    var_22 = pbVar17;
    if (var_14 != (type_7 *)0x0) {
      do {
        bVar19 = false;
        bVar3 = true;
        if (var_14->type == var_15) {
          var_17 = var_16(var_14->string,var_13->filename);
          bVar19 = var_17 == 0;
          bVar3 = !bVar19;
        }
        var_14 = var_14->next;
      } while ((var_14 != (type_7 *)0x0) && (bVar3));
      if (bVar19) {
        var_22 = var_13->my_archive;
        if (var_13->my_archive == (type_5 *)0x0) {
          var_22 = var_13;
        }
        var_19 = (type_5 *)var_18(var_22->filename,0);
        if (var_19 == (type_5 *)0x0) {
          impfilename = var_13->filename;
          pcVar14 = (char *)var_7(0,"%X%P: bfd_openr %s: %E\n",5);
          goto LAB_00150d81;
        }
        var_22 = var_19;
        if (var_13->my_archive != (type_5 *)0x0) {
          var_17 = var_20(var_19,2,0);
          if (var_17 == 0) {
            pcVar14 = var_13->filename;
            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";
            pcVar9 = var_13->my_archive->filename;
LAB_00150d14:
            pcVar16 = (char *)var_7(0,pcVar16,5);
            var_8(pcVar16,pcVar9,pcVar14);
            return;
          }
          var_22 = (type_5 *)0x0;
          do {
            var_22 = (type_5 *)var_21(var_19,var_22);
            if (var_22 == (type_5 *)0x0) {
              pcVar14 = var_13->filename;
              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";
              pcVar9 = var_13->my_archive->filename;
              goto LAB_00150d14;
            }
            var_17 = var_16(var_22->filename);
          } while (var_17 != 0);
        }
        var_22->archive_next = pbVar17;
      }
    }
    pbVar17 = var_22;
    var_14 = excludes;
  }
  if (0 < def->num_exports) {
    var_23 = 0;
    do {
      if (pep_def_file->exports[var_23].flag_private == '\0') {
        pbVar2 = info->hash;
        pdVar10 = def->exports + var_23;
        pcVar14 = pdVar10->internal_name;
        pdVar10->internal_name = pdVar10->name;
        var_25 = var_24(pbVar2,pcVar14,0,0,0);
        if (((var_25 == 0) || (*(char *)(var_25 + 0x42) != 'j')) ||
           (*(long *)(var_25 + 0x28) != 0x2b4598)) {
          if ((pep_details->underscored != 0) && (*pcVar14 != '@')) {
            var_28 = var_26(pcVar14);
            pcVar9 = (char *)var_27(var_28 + 2);
            var_29(pcVar9,"_%s",pcVar14);
            var_25 = var_24(info->hash,pcVar9,0,0,0);
            var_30(pcVar9);
            if ((var_25 != 0) &&
               ((*(char *)(var_25 + 0x42) == 'j' && (*(long *)(var_25 + 0x28) == 0x2b4598))))
            goto LAB_00150bcd;
          }
          var_13 = var_31(def->exports + var_23,var_6,
                             (uint)(def->exports[var_23].flag_data == '\0'));
          pdVar10 = def->exports;
          var_13->archive_next = pbVar17;
          pdVar10[var_23].internal_name = pcVar14;
          pbVar17 = var_13;
        }
      }
LAB_00150bcd:
      var_23 = var_23 + 1;
    } while ((int)var_23 < def->num_exports);
  }
  var_13 = var_32(var_6);
  if ((var_33 != (type_5 *)0x0) && (var_13 != (type_5 *)0x0)) {
    var_33->archive_next = pbVar17;
    var_13->archive_next = var_33;
    var_17 = var_34(var_6,var_13);
    if (var_17 == 0) {
      var_8("%X%P: bfd_set_archive_head: %E\n");
    }
    var_17 = var_35(var_6);
    if (var_17 == 0) {
      var_8("%X%P: bfd_close %s: %E\n",impfilename);
    }
    do {
      var_13 = var_13->archive_next;
      var_35();
    } while (var_13 != (type_5 *)0x0);
  }
  return;
}


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

void MASKED(long *param_1,undefined8 param_2,long param_3)

{
  byte bVar1;
  bool bVar2;
  int iVar3;
  byte *pbVar4;
  long lVar5;
  long lVar6;
  undefined8 *puVar7;
  size_t sVar8;
  char *__s;
  undefined8 *puVar9;
  long lVar10;
  undefined8 *puVar11;
  undefined8 uVar12;
  undefined8 uVar13;
  long lVar14;
  undefined8 uVar15;
  char *pcVar16;
  undefined8 *puVar17;
  long lVar18;
  bool bVar19;
  
  DAT_002b5b30 = *param_1;
  if (*param_1 == 0) {
    DAT_002b5b30 = DAT_002b5b68;
  }
  pbVar4 = (byte *)xstrdup();
  bVar1 = *pbVar4;
  DAT_002b5b28 = pbVar4;
  while (bVar1 != 0) {
    if ((_sch_istable[(ulong)bVar1 * 2] & 0x8c) == 0) {
      *pbVar4 = 0x5f;
    }
    pbVar4 = pbVar4 + 1;
    bVar1 = *pbVar4;
  }
  unlink_if_ordinary(param_2);
  lVar5 = bfd_openw(param_2,0);
  if (lVar5 == 0) {
    uVar13 = dcgettext(0,"%X%P: can\'t open .lib file: %s\n",5);
LAB_00150d81:
    FUN_00129380(uVar13,param_2);
    return;
  }
  if (DAT_002b6158 != 0) {
    uVar13 = dcgettext(0,"Creating library file: %s\n",5);
    FUN_001292e0(uVar13,param_2);
  }
  bfd_set_format(lVar5,2);
  *(byte *)(lVar5 + 0x47) = *(byte *)(lVar5 + 0x47) | 0x80;
  lVar6 = FUN_0014eb10(lVar5);
  puVar17 = (undefined8 *)0x0;
  puVar7 = DAT_002b5b50;
  for (puVar9 = *(undefined8 **)(param_3 + 0x60); DAT_002b5b50 = puVar7, puVar9 != (undefined8 *)0x0
      ; puVar9 = (undefined8 *)puVar9[0x1e]) {
    puVar11 = puVar17;
    if (puVar7 != (undefined8 *)0x0) {
      do {
        bVar19 = false;
        bVar2 = true;
        if (*(int *)(puVar7 + 2) == 2) {
          iVar3 = filename_cmp(*puVar7,*puVar9);
          bVar19 = iVar3 == 0;
          bVar2 = !bVar19;
        }
        puVar7 = (undefined8 *)puVar7[1];
      } while ((puVar7 != (undefined8 *)0x0) && (bVar2));
      if (bVar19) {
        puVar7 = (undefined8 *)puVar9[0x1a];
        if ((undefined8 *)puVar9[0x1a] == (undefined8 *)0x0) {
          puVar7 = puVar9;
        }
        puVar7 = (undefined8 *)bfd_openr(*puVar7,0);
        if (puVar7 == (undefined8 *)0x0) {
          param_2 = *puVar9;
          uVar13 = dcgettext(0,"%X%P: bfd_openr %s: %E\n",5);
          goto LAB_00150d81;
        }
        puVar11 = puVar7;
        if (puVar9[0x1a] != 0) {
          iVar3 = bfd_check_format_matches(puVar7,2,0);
          if (iVar3 == 0) {
            uVar13 = *puVar9;
            pcVar16 = "%X%P: %s(%s): can\'t find member in non-archive file";
            uVar15 = *(undefined8 *)puVar9[0x1a];
LAB_00150d14:
            uVar12 = dcgettext(0,pcVar16,5);
            FUN_00129380(uVar12,uVar15,uVar13);
            return;
          }
          puVar11 = (undefined8 *)0x0;
          do {
            puVar11 = (undefined8 *)bfd_openr_next_archived_file(puVar7,puVar11);
            if (puVar11 == (undefined8 *)0x0) {
              uVar13 = *puVar9;
              pcVar16 = "%X%P: %s(%s): can\'t find member in archive";
              uVar15 = *(undefined8 *)puVar9[0x1a];
              goto LAB_00150d14;
            }
            iVar3 = filename_cmp(*puVar11);
          } while (iVar3 != 0);
        }
        puVar11[0x1b] = puVar17;
      }
    }
    puVar17 = puVar11;
    puVar7 = DAT_002b5b50;
  }
  if (0 < (int)param_1[8]) {
    lVar18 = 0;
    do {
      lVar14 = lVar18 * 0x28;
      if (*(char *)(*(long *)(DAT_002b5af8 + 0x48) + 0x20 + lVar14) == '\0') {
        uVar13 = *(undefined8 *)(param_3 + 0x28);
        puVar9 = (undefined8 *)(param_1[9] + lVar14);
        pcVar16 = (char *)puVar9[1];
        puVar9[1] = *puVar9;
        lVar10 = bfd_link_hash_lookup(uVar13,pcVar16,0,0,0);
        if (((lVar10 == 0) || (*(char *)(lVar10 + 0x42) != 'j')) ||
           (*(long *)(lVar10 + 0x28) != 0x2b4598)) {
          if ((*(int *)(DAT_002b5b90 + 0x1c) != 0) && (*pcVar16 != '@')) {
            sVar8 = strlen(pcVar16);
            __s = (char *)xmalloc(sVar8 + 2);
            sprintf(__s,"_%s",pcVar16);
            lVar10 = bfd_link_hash_lookup(*(undefined8 *)(param_3 + 0x28),__s,0,0,0);
            free(__s);
            if ((lVar10 != 0) &&
               ((*(char *)(lVar10 + 0x42) == 'j' && (*(long *)(lVar10 + 0x28) == 0x2b4598))))
            goto LAB_00150bcd;
          }
          puVar9 = (undefined8 *)
                   FUN_0014e2a0(param_1[9] + lVar14,lVar5,
                                *(char *)(param_1[9] + lVar14 + 0x23) == '\0');
          lVar10 = param_1[9];
          puVar9[0x1b] = puVar17;
          *(char **)(lVar10 + 8 + lVar14) = pcVar16;
          puVar17 = puVar9;
        }
      }
LAB_00150bcd:
      lVar18 = lVar18 + 1;
    } while ((int)lVar18 < (int)param_1[8]);
  }
  lVar18 = FUN_0014ee50(lVar5);
  if ((lVar6 != 0) && (lVar18 != 0)) {
    *(undefined8 **)(lVar6 + 0xd8) = puVar17;
    *(long *)(lVar18 + 0xd8) = lVar6;
    iVar3 = bfd_set_archive_head(lVar5,lVar18);
    if (iVar3 == 0) {
      FUN_00129380("%X%P: bfd_set_archive_head: %E\n");
    }
    iVar3 = bfd_close(lVar5);
    if (iVar3 == 0) {
      FUN_00129380("%X%P: bfd_close %s: %E\n",param_2);
    }
    do {
      lVar18 = *(long *)(lVar18 + 0xd8);
      bfd_close();
    } while (lVar18 != 0);
  }
  return;
}

