
bfd * open_inarch(char *archive_filename,char *file)

{
  bfd *pbVar1;
  byte bVar2;
  int iVar3;
  int *piVar4;
  long lVar5;
  bfd *pbVar6;
  bfd *pbVar7;
  bfd *pbVar8;
  char *pcVar9;
  char *pcVar10;
  char **matching;
  stat sbuf;
  
  bfd_set_error(0);
  if (target == (char *)0x0) {
    target = "plugin";
  }
  iVar3 = __xstat(1,archive_filename,(stat *)&sbuf);
  pcVar9 = output_filename;
  if (iVar3 != 0) {
    piVar4 = __errno_location();
    if (*piVar4 != 2) goto LAB_001048a5;
    if (operation_alters_arch == 0) {
      fprintf(stderr,"%s: ",program_name);
      perror(archive_filename);
      maybequit();
      return (bfd *)0x0;
    }
    if (((file != (char *)0x0) && (target == (char *)0x0)) && (lVar5 = bfd_openr(file), lVar5 != 0))
    {
      iVar3 = bfd_check_format(lVar5,1);
      if (iVar3 != 0) {
        target = (char *)**(undefined8 **)(lVar5 + 8);
      }
      bfd_close(lVar5);
    }
    lVar5 = bfd_openw(archive_filename,target);
    if (((lVar5 == 0) || (iVar3 = bfd_set_format(lVar5,2), iVar3 == 0)) ||
       (iVar3 = bfd_close(lVar5), iVar3 == 0)) goto LAB_001048a5;
    pcVar9 = archive_filename;
    if (silent_create == 0) {
      pcVar9 = (char *)dcgettext(0,"creating %s",5);
      non_fatal(pcVar9,archive_filename);
      pcVar9 = archive_filename;
    }
  }
  output_filename = pcVar9;
  pbVar6 = (bfd *)bfd_openr(archive_filename,target);
  if (pbVar6 != (bfd *)0x0) {
    iVar3 = bfd_check_format_matches(pbVar6,2,&matching);
    if (iVar3 == 0) {
      bfd_nonfatal(archive_filename);
      iVar3 = bfd_get_error();
      if (iVar3 == 0xd) {
        list_matching_formats(matching);
        free(matching);
      }
                    /* WARNING: Subroutine does not return */
      xexit(1);
    }
    if (((operation == replace) || (operation == quick_append)) &&
       (lVar5 = bfd_openr_next_archived_file(pbVar6,0), lVar5 != 0)) {
      bVar2 = pbVar6->field_0x48 & 1;
      if (make_thin_archive == 0) {
        if (bVar2 != 0) {
          pcVar9 = pbVar6->filename;
          pcVar10 = "Cannot convert existing thin library %s to normal format";
          goto LAB_00104818;
        }
      }
      else if (bVar2 == 0) {
        pcVar9 = pbVar6->filename;
        pcVar10 = "Cannot convert existing library %s to thin format";
LAB_00104818:
        pcVar10 = (char *)dcgettext(0,pcVar10,5);
                    /* WARNING: Subroutine does not return */
        fatal(pcVar10,pcVar9);
      }
    }
    pbVar7 = (bfd *)bfd_openr_next_archived_file(pbVar6,0);
    pbVar8 = pbVar6;
    while (pbVar1 = pbVar7, pbVar1 != (bfd *)0x0) {
      pbVar8->archive_next = pbVar1;
      pbVar7 = (bfd *)bfd_openr_next_archived_file(pbVar6,pbVar1);
      pbVar8 = pbVar1;
    }
    pbVar8->archive_next = (bfd *)0x0;
    iVar3 = bfd_get_error();
    if (iVar3 == 9) {
      return pbVar6;
    }
  }
LAB_001048a5:
                    /* WARNING: Subroutine does not return */
  bfd_fatal(archive_filename);
}



undefined8 * FUN_00104620(char *param_1,long param_2)

{
  long *plVar1;
  int iVar2;
  int *piVar3;
  long lVar4;
  undefined8 *puVar5;
  undefined8 uVar6;
  undefined8 uVar7;
  char *pcVar8;
  void *local_b0;
  stat local_a8;
  
  bfd_set_error(0);
  if (DAT_001104b8 == (char *)0x0) {
    DAT_001104b8 = "plugin";
  }
  iVar2 = __xstat(1,param_1,&local_a8);
  pcVar8 = DAT_001104b0;
  if (iVar2 == 0) {
LAB_001046db:
    DAT_001104b0 = pcVar8;
    puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8);
    if (puVar5 != (undefined8 *)0x0) {
      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);
      if (iVar2 == 0) goto LAB_001048ad;
      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&
         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {
        if (DAT_001104c8 == 0) {
          if ((*(byte *)(puVar5 + 9) & 1) != 0) {
            uVar6 = *puVar5;
            pcVar8 = "Cannot convert existing thin library %s to normal format";
            goto LAB_00104818;
          }
        }
        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {
          uVar6 = *puVar5;
          pcVar8 = "Cannot convert existing library %s to thin format";
LAB_00104818:
          uVar7 = dcgettext(0,pcVar8,5);
                    /* WARNING: Subroutine does not return */
          FUN_00107860(uVar7,uVar6);
        }
      }
      plVar1 = puVar5 + 0x1b;
      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;
          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {
        *plVar1 = lVar4;
        plVar1 = (long *)(lVar4 + 0xd8);
      }
      *plVar1 = 0;
      iVar2 = bfd_get_error();
      if (iVar2 == 9) {
        return puVar5;
      }
    }
  }
  else {
    piVar3 = __errno_location();
    if (*piVar3 == 2) {
      if (DAT_00110470 == 0) {
        fprintf(stderr,"%s: ",DAT_001106b0);
        perror(param_1);
        FUN_00106580();
        return (undefined8 *)0x0;
      }
      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&
         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {
        iVar2 = bfd_check_format(lVar4,1);
        if (iVar2 != 0) {
          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);
        }
        bfd_close(lVar4);
      }
      lVar4 = bfd_openw(param_1,DAT_001104b8);
      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&
         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {
        pcVar8 = param_1;
        if (DAT_0011049c == 0) {
          uVar6 = dcgettext(0,"creating %s",5);
          FUN_00107900(uVar6,param_1);
          pcVar8 = param_1;
        }
        goto LAB_001046db;
      }
    }
  }
  FUN_001077e0(param_1);
LAB_001048ad:
  FUN_001075b0(param_1);
  iVar2 = bfd_get_error();
  if (iVar2 == 0xd) {
    FUN_001079f0(local_b0);
    free(local_b0);
  }
                    /* WARNING: Subroutine does not return */
  xexit(1);
}


PUSH R12
MOV R12,RDI
XOR EDI,EDI
PUSH RBP
PUSH RBX
MOV RBX,RSI
SUB RSP,0xa0
CALL 0x00102280
CMP qword ptr [0x001104b8],0x0
JZ 0x001047e8
LEA RDX,[RSP + 0x10]
MOV RSI,R12
MOV EDI,0x1
CALL 0x001023d0
TEST EAX,EAX
JZ 0x001046db
CALL 0x001020a0
CMP dword ptr [RAX],0x2
JNZ 0x001048a5
MOV ESI,dword ptr [0x00110470]
TEST ESI,ESI
JZ 0x00104865
MOV RSI,qword ptr [0x001104b8]
TEST RBX,RBX
JZ 0x0010468d
TEST RSI,RSI
JZ 0x00104830
MOV RDI,R12
CALL 0x00102490
MOV RBX,RAX
TEST RAX,RAX
JZ 0x001048a5
MOV ESI,0x2
MOV RDI,RAX
CALL 0x00102360
TEST EAX,EAX
JZ 0x001048a5
MOV RDI,RBX
CALL 0x00102510
TEST EAX,EAX
JZ 0x001048a5
MOV ECX,dword ptr [0x0011049c]
TEST ECX,ECX
JZ 0x001047c0
MOV qword ptr [0x001104b0],R12
MOV RSI,qword ptr [0x001104b8]
MOV RDI,R12
CALL 0x00102170
MOV RBP,RAX
TEST RAX,RAX
JZ 0x001048a5
LEA RDX,[RSP + 0x8]
MOV ESI,0x2
MOV RDI,RAX
CALL 0x00102550
TEST EAX,EAX
JZ 0x001048ad
MOV EAX,dword ptr [0x00110478]
CMP EAX,0x2
JZ 0x00104780
CMP EAX,0x7
JZ 0x00104780
XOR ESI,ESI
MOV RDI,RBP
LEA RBX,[RBP + 0xd8]
CALL 0x001025b0
TEST RAX,RAX
JZ 0x0010475a
NOP word ptr CS:[RAX + RAX*0x1]
MOV qword ptr [RBX],RAX
MOV RSI,RAX
MOV RDI,RBP
LEA RBX,[RAX + 0xd8]
CALL 0x001025b0
TEST RAX,RAX
JNZ 0x00104740
MOV qword ptr [RBX],0x0
CALL 0x00102260
CMP EAX,0x9
JNZ 0x001048a5
ADD RSP,0xa0
MOV RAX,RBP
POP RBX
POP RBP
POP R12
RET
XOR ESI,ESI
MOV RDI,RBP
CALL 0x001025b0
TEST RAX,RAX
JZ 0x00104720
MOVZX EAX,byte ptr [RBP + 0x48]
MOV EDX,dword ptr [0x001104c8]
AND EAX,0x1
TEST EDX,EDX
JZ 0x00104800
TEST AL,AL
JNZ 0x00104720
MOV RBX,qword ptr [RBP]
MOV EDX,0x5
LEA RSI,[0x10ab28]
JMP 0x00104818
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x10a134]
CALL 0x001021b0
MOV RSI,R12
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107900
JMP 0x001046d4
LEA RAX,[0x10a128]
MOV qword ptr [0x001104b8],RAX
JMP 0x00104646
TEST AL,AL
JZ 0x00104720
MOV RBX,qword ptr [RBP]
MOV EDX,0x5
LEA RSI,[0x10ab60]
XOR EDI,EDI
CALL 0x001021b0
MOV RSI,RBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107860
MOV RDI,RBX
CALL 0x00102170
MOV RBX,RAX
TEST RAX,RAX
JZ 0x00104859
MOV ESI,0x1
MOV RDI,RAX
CALL 0x001025a0
TEST EAX,EAX
JNZ 0x00104895
MOV RDI,RBX
CALL 0x00102510
MOV RSI,qword ptr [0x001104b8]
JMP 0x0010468d
MOV RDX,qword ptr [0x001106b0]
MOV RDI,qword ptr [0x00110460]
XOR EAX,EAX
XOR EBP,EBP
LEA RSI,[0x10a12f]
CALL 0x00102340
MOV RDI,R12
CALL 0x00102520
CALL 0x00106580
JMP 0x0010476f
MOV RAX,qword ptr [RBX + 0x8]
MOV RAX,qword ptr [RAX]
MOV qword ptr [0x001104b8],RAX
JMP 0x00104851
MOV RDI,R12
CALL 0x001077e0
MOV RDI,R12
CALL 0x001075b0
CALL 0x00102260
CMP EAX,0xd
JZ 0x001048c9
MOV EDI,0x1
CALL 0x00102500
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x001079f0
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x00102060
JMP 0x001048bf
(translation_unit "undefined8 * FUN_00104620(char *param_1,long param_2)\n\n{\n  long *plVar1;\n  int iVar2;\n  int *piVar3;\n  long lVar4;\n  undefined8 *puVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  char *pcVar8;\n  void *local_b0;\n  stat local_a8;\n  \n  bfd_set_error(0);\n  if (DAT_001104b8 == (char *)0x0) {\n    DAT_001104b8 = "plugin";\n  }\n  iVar2 = __xstat(1,param_1,&local_a8);\n  pcVar8 = DAT_001104b0;\n  if (iVar2 == 0) {\nLAB_001046db:\n    DAT_001104b0 = pcVar8;\n    puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8);\n    if (puVar5 != (undefined8 *)0x0) {\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    /* WARNING: Subroutine does not return */\n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }\n  }\n  else {\n    piVar3 = __errno_location();\n    if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }\n  }\n  FUN_001077e0(param_1);\nLAB_001048ad:\n  FUN_001075b0(param_1);\n  iVar2 = bfd_get_error();\n  if (iVar2 == 0xd) {\n    FUN_001079f0(local_b0);\n    free(local_b0);\n  }\n                    /* WARNING: Subroutine does not return */\n  xexit(1);\n}\n\n" (function_definition "undefined8 * FUN_00104620(char *param_1,long param_2)\n\n{\n  long *plVar1;\n  int iVar2;\n  int *piVar3;\n  long lVar4;\n  undefined8 *puVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  char *pcVar8;\n  void *local_b0;\n  stat local_a8;\n  \n  bfd_set_error(0);\n  if (DAT_001104b8 == (char *)0x0) {\n    DAT_001104b8 = "plugin";\n  }\n  iVar2 = __xstat(1,param_1,&local_a8);\n  pcVar8 = DAT_001104b0;\n  if (iVar2 == 0) {\nLAB_001046db:\n    DAT_001104b0 = pcVar8;\n    puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8);\n    if (puVar5 != (undefined8 *)0x0) {\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    /* WARNING: Subroutine does not return */\n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }\n  }\n  else {\n    piVar3 = __errno_location();\n    if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }\n  }\n  FUN_001077e0(param_1);\nLAB_001048ad:\n  FUN_001075b0(param_1);\n  iVar2 = bfd_get_error();\n  if (iVar2 == 0xd) {\n    FUN_001079f0(local_b0);\n    free(local_b0);\n  }\n                    /* WARNING: Subroutine does not return */\n  xexit(1);\n}" type_identifier (pointer_declarator "* FUN_00104620(char *param_1,long param_2)" * (function_declarator "FUN_00104620(char *param_1,long param_2)" identifier (parameter_list "(char *param_1,long param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) )))) (compound_statement "{\n  long *plVar1;\n  int iVar2;\n  int *piVar3;\n  long lVar4;\n  undefined8 *puVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  char *pcVar8;\n  void *local_b0;\n  stat local_a8;\n  \n  bfd_set_error(0);\n  if (DAT_001104b8 == (char *)0x0) {\n    DAT_001104b8 = "plugin";\n  }\n  iVar2 = __xstat(1,param_1,&local_a8);\n  pcVar8 = DAT_001104b0;\n  if (iVar2 == 0) {\nLAB_001046db:\n    DAT_001104b0 = pcVar8;\n    puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8);\n    if (puVar5 != (undefined8 *)0x0) {\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    /* WARNING: Subroutine does not return */\n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }\n  }\n  else {\n    piVar3 = __errno_location();\n    if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }\n  }\n  FUN_001077e0(param_1);\nLAB_001048ad:\n  FUN_001075b0(param_1);\n  iVar2 = bfd_get_error();\n  if (iVar2 == 0xd) {\n    FUN_001079f0(local_b0);\n    free(local_b0);\n  }\n                    /* WARNING: Subroutine does not return */\n  xexit(1);\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "void *local_b0;" primitive_type (pointer_declarator "*local_b0" * identifier) ;) (declaration "stat local_a8;" type_identifier identifier ;) (expression_statement "bfd_set_error(0);" (call_expression "bfd_set_error(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (if_statement "if (DAT_001104b8 == (char *)0x0) {\n    DAT_001104b8 = "plugin";\n  }" if (parenthesized_expression "(DAT_001104b8 == (char *)0x0)" ( (binary_expression "DAT_001104b8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_001104b8 = "plugin";\n  }" { (expression_statement "DAT_001104b8 = "plugin";" (assignment_expression "DAT_001104b8 = "plugin"" identifier = (string_literal ""plugin"" " string_content ")) ;) })) (expression_statement "iVar2 = __xstat(1,param_1,&local_a8);" (assignment_expression "iVar2 = __xstat(1,param_1,&local_a8)" identifier = (call_expression "__xstat(1,param_1,&local_a8)" identifier (argument_list "(1,param_1,&local_a8)" ( number_literal , identifier , (pointer_expression "&local_a8" & identifier) )))) ;) (expression_statement "pcVar8 = DAT_001104b0;" (assignment_expression "pcVar8 = DAT_001104b0" identifier = identifier) ;) (if_statement "if (iVar2 == 0) {\nLAB_001046db:\n    DAT_001104b0 = pcVar8;\n    puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8);\n    if (puVar5 != (undefined8 *)0x0) {\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    /* WARNING: Subroutine does not return */\n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }\n  }\n  else {\n    piVar3 = __errno_location();\n    if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001046db:\n    DAT_001104b0 = pcVar8;\n    puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8);\n    if (puVar5 != (undefined8 *)0x0) {\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    /* WARNING: Subroutine does not return */\n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }\n  }" { (labeled_statement "LAB_001046db:\n    DAT_001104b0 = pcVar8;" statement_identifier : (expression_statement "DAT_001104b0 = pcVar8;" (assignment_expression "DAT_001104b0 = pcVar8" identifier = identifier) ;)) (expression_statement "puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8);" (assignment_expression "puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8)" identifier = (cast_expression "(undefined8 *)bfd_openr(param_1,DAT_001104b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_openr(param_1,DAT_001104b8)" identifier (argument_list "(param_1,DAT_001104b8)" ( identifier , identifier ))))) ;) (if_statement "if (puVar5 != (undefined8 *)0x0) {\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    /* WARNING: Subroutine does not return */\n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }" if (parenthesized_expression "(puVar5 != (undefined8 *)0x0)" ( (binary_expression "puVar5 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    /* WARNING: Subroutine does not return */\n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }" { (expression_statement "iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);" (assignment_expression "iVar2 = bfd_check_format_matches(puVar5,2,&local_b0)" identifier = (call_expression "bfd_check_format_matches(puVar5,2,&local_b0)" identifier (argument_list "(puVar5,2,&local_b0)" ( identifier , number_literal , (pointer_expression "&local_b0" & identifier) )))) ;) (if_statement "if (iVar2 == 0) goto LAB_001048ad;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001048ad;" goto statement_identifier ;)) (if_statement "if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    /* WARNING: Subroutine does not return */\n          FUN_00107860(uVar7,uVar6);\n        }\n      }" if (parenthesized_expression "(((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0))" ( (binary_expression "((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)" (parenthesized_expression "((DAT_00110478 == 2) || (DAT_00110478 == 7))" ( (binary_expression "(DAT_00110478 == 2) || (DAT_00110478 == 7)" (parenthesized_expression "(DAT_00110478 == 2)" ( (binary_expression "DAT_00110478 == 2" identifier == number_literal) )) || (parenthesized_expression "(DAT_00110478 == 7)" ( (binary_expression "DAT_00110478 == 7" identifier == number_literal) ))) )) && (parenthesized_expression "(lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)" ( (comma_expression "lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0" (assignment_expression "lVar4 = bfd_openr_next_archived_file(puVar5,0)" identifier = (call_expression "bfd_openr_next_archived_file(puVar5,0)" identifier (argument_list "(puVar5,0)" ( identifier , number_literal )))) , (binary_expression "lVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    /* WARNING: Subroutine does not return */\n          FUN_00107860(uVar7,uVar6);\n        }\n      }" { (if_statement "if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    /* WARNING: Subroutine does not return */\n          FUN_00107860(uVar7,uVar6);\n        }" if (parenthesized_expression "(DAT_001104c8 == 0)" ( (binary_expression "DAT_001104c8 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }" { (if_statement "if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }" if (parenthesized_expression "((*(byte *)(puVar5 + 9) & 1) != 0)" ( (binary_expression "(*(byte *)(puVar5 + 9) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar5 + 9) & 1)" ( (binary_expression "*(byte *)(puVar5 + 9) & 1" (pointer_expression "*(byte *)(puVar5 + 9)" * (cast_expression "(byte *)(puVar5 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 9)" ( (binary_expression "puVar5 + 9" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }" { (expression_statement "uVar6 = *puVar5;" (assignment_expression "uVar6 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "pcVar8 = "Cannot convert existing thin library %s to normal format";" (assignment_expression "pcVar8 = "Cannot convert existing thin library %s to normal format"" identifier = (string_literal ""Cannot convert existing thin library %s to normal format"" " string_content ")) ;) (goto_statement "goto LAB_00104818;" goto statement_identifier ;) })) }) (else_clause "else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    /* WARNING: Subroutine does not return */\n          FUN_00107860(uVar7,uVar6);\n        }" else (if_statement "if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    /* WARNING: Subroutine does not return */\n          FUN_00107860(uVar7,uVar6);\n        }" if (parenthesized_expression "((*(byte *)(puVar5 + 9) & 1) == 0)" ( (binary_expression "(*(byte *)(puVar5 + 9) & 1) == 0" (parenthesized_expression "(*(byte *)(puVar5 + 9) & 1)" ( (binary_expression "*(byte *)(puVar5 + 9) & 1" (pointer_expression "*(byte *)(puVar5 + 9)" * (cast_expression "(byte *)(puVar5 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 9)" ( (binary_expression "puVar5 + 9" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    /* WARNING: Subroutine does not return */\n          FUN_00107860(uVar7,uVar6);\n        }" { (expression_statement "uVar6 = *puVar5;" (assignment_expression "uVar6 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "pcVar8 = "Cannot convert existing library %s to thin format";" (assignment_expression "pcVar8 = "Cannot convert existing library %s to thin format"" identifier = (string_literal ""Cannot convert existing library %s to thin format"" " string_content ")) ;) (labeled_statement "LAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);" statement_identifier : (expression_statement "uVar7 = dcgettext(0,pcVar8,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar8,5)" identifier = (call_expression "dcgettext(0,pcVar8,5)" identifier (argument_list "(0,pcVar8,5)" ( number_literal , identifier , number_literal )))) ;)) comment (expression_statement "FUN_00107860(uVar7,uVar6);" (call_expression "FUN_00107860(uVar7,uVar6)" identifier (argument_list "(uVar7,uVar6)" ( identifier , identifier ))) ;) })))) })) (expression_statement "plVar1 = puVar5 + 0x1b;" (assignment_expression "plVar1 = puVar5 + 0x1b" identifier = (binary_expression "puVar5 + 0x1b" identifier + number_literal)) ;) (for_statement "for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }" for ( (assignment_expression "lVar4 = bfd_openr_next_archived_file(puVar5,0)" identifier = (call_expression "bfd_openr_next_archived_file(puVar5,0)" identifier (argument_list "(puVar5,0)" ( identifier , number_literal )))) ; (binary_expression "lVar4 != 0" identifier != number_literal) ; (assignment_expression "lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)" identifier = (call_expression "bfd_openr_next_archived_file(puVar5,lVar4)" identifier (argument_list "(puVar5,lVar4)" ( identifier , identifier )))) ) (compound_statement "{\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }" { (expression_statement "*plVar1 = lVar4;" (assignment_expression "*plVar1 = lVar4" (pointer_expression "*plVar1" * identifier) = identifier) ;) (expression_statement "plVar1 = (long *)(lVar4 + 0xd8);" (assignment_expression "plVar1 = (long *)(lVar4 + 0xd8)" identifier = (cast_expression "(long *)(lVar4 + 0xd8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0xd8)" ( (binary_expression "lVar4 + 0xd8" identifier + number_literal) )))) ;) })) (expression_statement "*plVar1 = 0;" (assignment_expression "*plVar1 = 0" (pointer_expression "*plVar1" * identifier) = number_literal) ;) (expression_statement "iVar2 = bfd_get_error();" (assignment_expression "iVar2 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 9) {\n        return puVar5;\n      }" if (parenthesized_expression "(iVar2 == 9)" ( (binary_expression "iVar2 == 9" identifier == number_literal) )) (compound_statement "{\n        return puVar5;\n      }" { (return_statement "return puVar5;" return identifier ;) })) })) }) (else_clause "else {\n    piVar3 = __errno_location();\n    if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }\n  }" else (compound_statement "{\n    piVar3 = __errno_location();\n    if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }\n  }" { (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }" if (parenthesized_expression "(*piVar3 == 2)" ( (binary_expression "*piVar3 == 2" (pointer_expression "*piVar3" * identifier) == number_literal) )) (compound_statement "{\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }" { (if_statement "if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }" if (parenthesized_expression "(DAT_00110470 == 0)" ( (binary_expression "DAT_00110470 == 0" identifier == number_literal) )) (compound_statement "{\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }" { (expression_statement "fprintf(stderr,"%s: ",DAT_001106b0);" (call_expression "fprintf(stderr,"%s: ",DAT_001106b0)" identifier (argument_list "(stderr,"%s: ",DAT_001106b0)" ( identifier , (string_literal ""%s: "" " string_content ") , identifier ))) ;) (expression_statement "perror(param_1);" (call_expression "perror(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "FUN_00106580();" (call_expression "FUN_00106580()" identifier (argument_list "()" ( ))) ;) (return_statement "return (undefined8 *)0x0;" return (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }" if (parenthesized_expression "(((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0))" ( (binary_expression "((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)" (parenthesized_expression "((param_2 != 0) && (DAT_001104b8 == (char *)0x0))" ( (binary_expression "(param_2 != 0) && (DAT_001104b8 == (char *)0x0)" (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_001104b8 == (char *)0x0)" ( (binary_expression "DAT_001104b8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(lVar4 = bfd_openr(param_2), lVar4 != 0)" ( (comma_expression "lVar4 = bfd_openr(param_2), lVar4 != 0" (assignment_expression "lVar4 = bfd_openr(param_2)" identifier = (call_expression "bfd_openr(param_2)" identifier (argument_list "(param_2)" ( identifier )))) , (binary_expression "lVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }" { (expression_statement "iVar2 = bfd_check_format(lVar4,1);" (assignment_expression "iVar2 = bfd_check_format(lVar4,1)" identifier = (call_expression "bfd_check_format(lVar4,1)" identifier (argument_list "(lVar4,1)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }" { (expression_statement "DAT_001104b8 = (char *)**(long **)(lVar4 + 8);" (assignment_expression "DAT_001104b8 = (char *)**(long **)(lVar4 + 8)" identifier = (cast_expression "(char *)**(long **)(lVar4 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(long **)(lVar4 + 8)" * (pointer_expression "*(long **)(lVar4 + 8)" * (cast_expression "(long **)(lVar4 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar4 + 8)" ( (binary_expression "lVar4 + 8" identifier + number_literal) ))))))) ;) })) (expression_statement "bfd_close(lVar4);" (call_expression "bfd_close(lVar4)" identifier (argument_list "(lVar4)" ( identifier ))) ;) })) (expression_statement "lVar4 = bfd_openw(param_1,DAT_001104b8);" (assignment_expression "lVar4 = bfd_openw(param_1,DAT_001104b8)" identifier = (call_expression "bfd_openw(param_1,DAT_001104b8)" identifier (argument_list "(param_1,DAT_001104b8)" ( identifier , identifier )))) ;) (if_statement "if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }" if (parenthesized_expression "(((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0))" ( (binary_expression "((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)" (parenthesized_expression "((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0))" ( (binary_expression "(lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)" (parenthesized_expression "(lVar4 != 0)" ( (binary_expression "lVar4 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)" ( (comma_expression "iVar2 = bfd_set_format(lVar4,2), iVar2 != 0" (assignment_expression "iVar2 = bfd_set_format(lVar4,2)" identifier = (call_expression "bfd_set_format(lVar4,2)" identifier (argument_list "(lVar4,2)" ( identifier , number_literal )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(iVar2 = bfd_close(lVar4), iVar2 != 0)" ( (comma_expression "iVar2 = bfd_close(lVar4), iVar2 != 0" (assignment_expression "iVar2 = bfd_close(lVar4)" identifier = (call_expression "bfd_close(lVar4)" identifier (argument_list "(lVar4)" ( identifier )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }" { (expression_statement "pcVar8 = param_1;" (assignment_expression "pcVar8 = param_1" identifier = identifier) ;) (if_statement "if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }" if (parenthesized_expression "(DAT_0011049c == 0)" ( (binary_expression "DAT_0011049c == 0" identifier == number_literal) )) (compound_statement "{\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }" { (expression_statement "uVar6 = dcgettext(0,"creating %s",5);" (assignment_expression "uVar6 = dcgettext(0,"creating %s",5)" identifier = (call_expression "dcgettext(0,"creating %s",5)" identifier (argument_list "(0,"creating %s",5)" ( number_literal , (string_literal ""creating %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00107900(uVar6,param_1);" (call_expression "FUN_00107900(uVar6,param_1)" identifier (argument_list "(uVar6,param_1)" ( identifier , identifier ))) ;) (expression_statement "pcVar8 = param_1;" (assignment_expression "pcVar8 = param_1" identifier = identifier) ;) })) (goto_statement "goto LAB_001046db;" goto statement_identifier ;) })) })) }))) (expression_statement "FUN_001077e0(param_1);" (call_expression "FUN_001077e0(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (labeled_statement "LAB_001048ad:\n  FUN_001075b0(param_1);" statement_identifier : (expression_statement "FUN_001075b0(param_1);" (call_expression "FUN_001075b0(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;)) (expression_statement "iVar2 = bfd_get_error();" (assignment_expression "iVar2 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 0xd) {\n    FUN_001079f0(local_b0);\n    free(local_b0);\n  }" if (parenthesized_expression "(iVar2 == 0xd)" ( (binary_expression "iVar2 == 0xd" identifier == number_literal) )) (compound_statement "{\n    FUN_001079f0(local_b0);\n    free(local_b0);\n  }" { (expression_statement "FUN_001079f0(local_b0);" (call_expression "FUN_001079f0(local_b0)" identifier (argument_list "(local_b0)" ( identifier ))) ;) (expression_statement "free(local_b0);" (call_expression "free(local_b0)" identifier (argument_list "(local_b0)" ( identifier ))) ;) })) comment (expression_statement "xexit(1);" (call_expression "xexit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })))
(translation_unit "bfd * open_inarch(char *archive_filename,char *file)\n\n{\n  bfd *pbVar1;\n  byte bVar2;\n  int iVar3;\n  int *piVar4;\n  long lVar5;\n  bfd *pbVar6;\n  bfd *pbVar7;\n  bfd *pbVar8;\n  char *pcVar9;\n  char *pcVar10;\n  char **matching;\n  stat sbuf;\n  \n  bfd_set_error(0);\n  if (target == (char *)0x0) {\n    target = "plugin";\n  }\n  iVar3 = __xstat(1,archive_filename,(stat *)&sbuf);\n  pcVar9 = output_filename;\n  if (iVar3 != 0) {\n    piVar4 = __errno_location();\n    if (*piVar4 != 2) goto LAB_001048a5;\n    if (operation_alters_arch == 0) {\n      fprintf(stderr,"%s: ",program_name);\n      perror(archive_filename);\n      maybequit();\n      return (bfd *)0x0;\n    }\n    if (((file != (char *)0x0) && (target == (char *)0x0)) && (lVar5 = bfd_openr(file), lVar5 != 0))\n    {\n      iVar3 = bfd_check_format(lVar5,1);\n      if (iVar3 != 0) {\n        target = (char *)**(undefined8 **)(lVar5 + 8);\n      }\n      bfd_close(lVar5);\n    }\n    lVar5 = bfd_openw(archive_filename,target);\n    if (((lVar5 == 0) || (iVar3 = bfd_set_format(lVar5,2), iVar3 == 0)) ||\n       (iVar3 = bfd_close(lVar5), iVar3 == 0)) goto LAB_001048a5;\n    pcVar9 = archive_filename;\n    if (silent_create == 0) {\n      pcVar9 = (char *)dcgettext(0,"creating %s",5);\n      non_fatal(pcVar9,archive_filename);\n      pcVar9 = archive_filename;\n    }\n  }\n  output_filename = pcVar9;\n  pbVar6 = (bfd *)bfd_openr(archive_filename,target);\n  if (pbVar6 != (bfd *)0x0) {\n    iVar3 = bfd_check_format_matches(pbVar6,2,&matching);\n    if (iVar3 == 0) {\n      bfd_nonfatal(archive_filename);\n      iVar3 = bfd_get_error();\n      if (iVar3 == 0xd) {\n        list_matching_formats(matching);\n        free(matching);\n      }\n                    /* WARNING: Subroutine does not return */\n      xexit(1);\n    }\n    if (((operation == replace) || (operation == quick_append)) &&\n       (lVar5 = bfd_openr_next_archived_file(pbVar6,0), lVar5 != 0)) {\n      bVar2 = pbVar6->field_0x48 & 1;\n      if (make_thin_archive == 0) {\n        if (bVar2 != 0) {\n          pcVar9 = pbVar6->filename;\n          pcVar10 = "Cannot convert existing thin library %s to normal format";\n          goto LAB_00104818;\n        }\n      }\n      else if (bVar2 == 0) {\n        pcVar9 = pbVar6->filename;\n        pcVar10 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n        pcVar10 = (char *)dcgettext(0,pcVar10,5);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar10,pcVar9);\n      }\n    }\n    pbVar7 = (bfd *)bfd_openr_next_archived_file(pbVar6,0);\n    pbVar8 = pbVar6;\n    while (pbVar1 = pbVar7, pbVar1 != (bfd *)0x0) {\n      pbVar8->archive_next = pbVar1;\n      pbVar7 = (bfd *)bfd_openr_next_archived_file(pbVar6,pbVar1);\n      pbVar8 = pbVar1;\n    }\n    pbVar8->archive_next = (bfd *)0x0;\n    iVar3 = bfd_get_error();\n    if (iVar3 == 9) {\n      return pbVar6;\n    }\n  }\nLAB_001048a5:\n                    /* WARNING: Subroutine does not return */\n  bfd_fatal(archive_filename);\n}\n\n" (function_definition "bfd * open_inarch(char *archive_filename,char *file)\n\n{\n  bfd *pbVar1;\n  byte bVar2;\n  int iVar3;\n  int *piVar4;\n  long lVar5;\n  bfd *pbVar6;\n  bfd *pbVar7;\n  bfd *pbVar8;\n  char *pcVar9;\n  char *pcVar10;\n  char **matching;\n  stat sbuf;\n  \n  bfd_set_error(0);\n  if (target == (char *)0x0) {\n    target = "plugin";\n  }\n  iVar3 = __xstat(1,archive_filename,(stat *)&sbuf);\n  pcVar9 = output_filename;\n  if (iVar3 != 0) {\n    piVar4 = __errno_location();\n    if (*piVar4 != 2) goto LAB_001048a5;\n    if (operation_alters_arch == 0) {\n      fprintf(stderr,"%s: ",program_name);\n      perror(archive_filename);\n      maybequit();\n      return (bfd *)0x0;\n    }\n    if (((file != (char *)0x0) && (target == (char *)0x0)) && (lVar5 = bfd_openr(file), lVar5 != 0))\n    {\n      iVar3 = bfd_check_format(lVar5,1);\n      if (iVar3 != 0) {\n        target = (char *)**(undefined8 **)(lVar5 + 8);\n      }\n      bfd_close(lVar5);\n    }\n    lVar5 = bfd_openw(archive_filename,target);\n    if (((lVar5 == 0) || (iVar3 = bfd_set_format(lVar5,2), iVar3 == 0)) ||\n       (iVar3 = bfd_close(lVar5), iVar3 == 0)) goto LAB_001048a5;\n    pcVar9 = archive_filename;\n    if (silent_create == 0) {\n      pcVar9 = (char *)dcgettext(0,"creating %s",5);\n      non_fatal(pcVar9,archive_filename);\n      pcVar9 = archive_filename;\n    }\n  }\n  output_filename = pcVar9;\n  pbVar6 = (bfd *)bfd_openr(archive_filename,target);\n  if (pbVar6 != (bfd *)0x0) {\n    iVar3 = bfd_check_format_matches(pbVar6,2,&matching);\n    if (iVar3 == 0) {\n      bfd_nonfatal(archive_filename);\n      iVar3 = bfd_get_error();\n      if (iVar3 == 0xd) {\n        list_matching_formats(matching);\n        free(matching);\n      }\n                    /* WARNING: Subroutine does not return */\n      xexit(1);\n    }\n    if (((operation == replace) || (operation == quick_append)) &&\n       (lVar5 = bfd_openr_next_archived_file(pbVar6,0), lVar5 != 0)) {\n      bVar2 = pbVar6->field_0x48 & 1;\n      if (make_thin_archive == 0) {\n        if (bVar2 != 0) {\n          pcVar9 = pbVar6->filename;\n          pcVar10 = "Cannot convert existing thin library %s to normal format";\n          goto LAB_00104818;\n        }\n      }\n      else if (bVar2 == 0) {\n        pcVar9 = pbVar6->filename;\n        pcVar10 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n        pcVar10 = (char *)dcgettext(0,pcVar10,5);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar10,pcVar9);\n      }\n    }\n    pbVar7 = (bfd *)bfd_openr_next_archived_file(pbVar6,0);\n    pbVar8 = pbVar6;\n    while (pbVar1 = pbVar7, pbVar1 != (bfd *)0x0) {\n      pbVar8->archive_next = pbVar1;\n      pbVar7 = (bfd *)bfd_openr_next_archived_file(pbVar6,pbVar1);\n      pbVar8 = pbVar1;\n    }\n    pbVar8->archive_next = (bfd *)0x0;\n    iVar3 = bfd_get_error();\n    if (iVar3 == 9) {\n      return pbVar6;\n    }\n  }\nLAB_001048a5:\n                    /* WARNING: Subroutine does not return */\n  bfd_fatal(archive_filename);\n}" type_identifier (pointer_declarator "* open_inarch(char *archive_filename,char *file)" * (function_declarator "open_inarch(char *archive_filename,char *file)" identifier (parameter_list "(char *archive_filename,char *file)" ( (parameter_declaration "char *archive_filename" primitive_type (pointer_declarator "*archive_filename" * identifier)) , (parameter_declaration "char *file" primitive_type (pointer_declarator "*file" * identifier)) )))) (compound_statement "{\n  bfd *pbVar1;\n  byte bVar2;\n  int iVar3;\n  int *piVar4;\n  long lVar5;\n  bfd *pbVar6;\n  bfd *pbVar7;\n  bfd *pbVar8;\n  char *pcVar9;\n  char *pcVar10;\n  char **matching;\n  stat sbuf;\n  \n  bfd_set_error(0);\n  if (target == (char *)0x0) {\n    target = "plugin";\n  }\n  iVar3 = __xstat(1,archive_filename,(stat *)&sbuf);\n  pcVar9 = output_filename;\n  if (iVar3 != 0) {\n    piVar4 = __errno_location();\n    if (*piVar4 != 2) goto LAB_001048a5;\n    if (operation_alters_arch == 0) {\n      fprintf(stderr,"%s: ",program_name);\n      perror(archive_filename);\n      maybequit();\n      return (bfd *)0x0;\n    }\n    if (((file != (char *)0x0) && (target == (char *)0x0)) && (lVar5 = bfd_openr(file), lVar5 != 0))\n    {\n      iVar3 = bfd_check_format(lVar5,1);\n      if (iVar3 != 0) {\n        target = (char *)**(undefined8 **)(lVar5 + 8);\n      }\n      bfd_close(lVar5);\n    }\n    lVar5 = bfd_openw(archive_filename,target);\n    if (((lVar5 == 0) || (iVar3 = bfd_set_format(lVar5,2), iVar3 == 0)) ||\n       (iVar3 = bfd_close(lVar5), iVar3 == 0)) goto LAB_001048a5;\n    pcVar9 = archive_filename;\n    if (silent_create == 0) {\n      pcVar9 = (char *)dcgettext(0,"creating %s",5);\n      non_fatal(pcVar9,archive_filename);\n      pcVar9 = archive_filename;\n    }\n  }\n  output_filename = pcVar9;\n  pbVar6 = (bfd *)bfd_openr(archive_filename,target);\n  if (pbVar6 != (bfd *)0x0) {\n    iVar3 = bfd_check_format_matches(pbVar6,2,&matching);\n    if (iVar3 == 0) {\n      bfd_nonfatal(archive_filename);\n      iVar3 = bfd_get_error();\n      if (iVar3 == 0xd) {\n        list_matching_formats(matching);\n        free(matching);\n      }\n                    /* WARNING: Subroutine does not return */\n      xexit(1);\n    }\n    if (((operation == replace) || (operation == quick_append)) &&\n       (lVar5 = bfd_openr_next_archived_file(pbVar6,0), lVar5 != 0)) {\n      bVar2 = pbVar6->field_0x48 & 1;\n      if (make_thin_archive == 0) {\n        if (bVar2 != 0) {\n          pcVar9 = pbVar6->filename;\n          pcVar10 = "Cannot convert existing thin library %s to normal format";\n          goto LAB_00104818;\n        }\n      }\n      else if (bVar2 == 0) {\n        pcVar9 = pbVar6->filename;\n        pcVar10 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n        pcVar10 = (char *)dcgettext(0,pcVar10,5);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar10,pcVar9);\n      }\n    }\n    pbVar7 = (bfd *)bfd_openr_next_archived_file(pbVar6,0);\n    pbVar8 = pbVar6;\n    while (pbVar1 = pbVar7, pbVar1 != (bfd *)0x0) {\n      pbVar8->archive_next = pbVar1;\n      pbVar7 = (bfd *)bfd_openr_next_archived_file(pbVar6,pbVar1);\n      pbVar8 = pbVar1;\n    }\n    pbVar8->archive_next = (bfd *)0x0;\n    iVar3 = bfd_get_error();\n    if (iVar3 == 9) {\n      return pbVar6;\n    }\n  }\nLAB_001048a5:\n                    /* WARNING: Subroutine does not return */\n  bfd_fatal(archive_filename);\n}" { (declaration "bfd *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "bfd *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "bfd *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "bfd *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "char **matching;" primitive_type (pointer_declarator "**matching" * (pointer_declarator "*matching" * identifier)) ;) (declaration "stat sbuf;" type_identifier identifier ;) (expression_statement "bfd_set_error(0);" (call_expression "bfd_set_error(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (if_statement "if (target == (char *)0x0) {\n    target = "plugin";\n  }" if (parenthesized_expression "(target == (char *)0x0)" ( (binary_expression "target == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    target = "plugin";\n  }" { (expression_statement "target = "plugin";" (assignment_expression "target = "plugin"" identifier = (string_literal ""plugin"" " string_content ")) ;) })) (expression_statement "iVar3 = __xstat(1,archive_filename,(stat *)&sbuf);" (assignment_expression "iVar3 = __xstat(1,archive_filename,(stat *)&sbuf)" identifier = (call_expression "__xstat(1,archive_filename,(stat *)&sbuf)" identifier (argument_list "(1,archive_filename,(stat *)&sbuf)" ( number_literal , identifier , (cast_expression "(stat *)&sbuf" ( (type_descriptor "stat *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sbuf" & identifier)) )))) ;) (expression_statement "pcVar9 = output_filename;" (assignment_expression "pcVar9 = output_filename" identifier = identifier) ;) (if_statement "if (iVar3 != 0) {\n    piVar4 = __errno_location();\n    if (*piVar4 != 2) goto LAB_001048a5;\n    if (operation_alters_arch == 0) {\n      fprintf(stderr,"%s: ",program_name);\n      perror(archive_filename);\n      maybequit();\n      return (bfd *)0x0;\n    }\n    if (((file != (char *)0x0) && (target == (char *)0x0)) && (lVar5 = bfd_openr(file), lVar5 != 0))\n    {\n      iVar3 = bfd_check_format(lVar5,1);\n      if (iVar3 != 0) {\n        target = (char *)**(undefined8 **)(lVar5 + 8);\n      }\n      bfd_close(lVar5);\n    }\n    lVar5 = bfd_openw(archive_filename,target);\n    if (((lVar5 == 0) || (iVar3 = bfd_set_format(lVar5,2), iVar3 == 0)) ||\n       (iVar3 = bfd_close(lVar5), iVar3 == 0)) goto LAB_001048a5;\n    pcVar9 = archive_filename;\n    if (silent_create == 0) {\n      pcVar9 = (char *)dcgettext(0,"creating %s",5);\n      non_fatal(pcVar9,archive_filename);\n      pcVar9 = archive_filename;\n    }\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar4 = __errno_location();\n    if (*piVar4 != 2) goto LAB_001048a5;\n    if (operation_alters_arch == 0) {\n      fprintf(stderr,"%s: ",program_name);\n      perror(archive_filename);\n      maybequit();\n      return (bfd *)0x0;\n    }\n    if (((file != (char *)0x0) && (target == (char *)0x0)) && (lVar5 = bfd_openr(file), lVar5 != 0))\n    {\n      iVar3 = bfd_check_format(lVar5,1);\n      if (iVar3 != 0) {\n        target = (char *)**(undefined8 **)(lVar5 + 8);\n      }\n      bfd_close(lVar5);\n    }\n    lVar5 = bfd_openw(archive_filename,target);\n    if (((lVar5 == 0) || (iVar3 = bfd_set_format(lVar5,2), iVar3 == 0)) ||\n       (iVar3 = bfd_close(lVar5), iVar3 == 0)) goto LAB_001048a5;\n    pcVar9 = archive_filename;\n    if (silent_create == 0) {\n      pcVar9 = (char *)dcgettext(0,"creating %s",5);\n      non_fatal(pcVar9,archive_filename);\n      pcVar9 = archive_filename;\n    }\n  }" { (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar4 != 2) goto LAB_001048a5;" if (parenthesized_expression "(*piVar4 != 2)" ( (binary_expression "*piVar4 != 2" (pointer_expression "*piVar4" * identifier) != number_literal) )) (goto_statement "goto LAB_001048a5;" goto statement_identifier ;)) (if_statement "if (operation_alters_arch == 0) {\n      fprintf(stderr,"%s: ",program_name);\n      perror(archive_filename);\n      maybequit();\n      return (bfd *)0x0;\n    }" if (parenthesized_expression "(operation_alters_arch == 0)" ( (binary_expression "operation_alters_arch == 0" identifier == number_literal) )) (compound_statement "{\n      fprintf(stderr,"%s: ",program_name);\n      perror(archive_filename);\n      maybequit();\n      return (bfd *)0x0;\n    }" { (expression_statement "fprintf(stderr,"%s: ",program_name);" (call_expression "fprintf(stderr,"%s: ",program_name)" identifier (argument_list "(stderr,"%s: ",program_name)" ( identifier , (string_literal ""%s: "" " string_content ") , identifier ))) ;) (expression_statement "perror(archive_filename);" (call_expression "perror(archive_filename)" identifier (argument_list "(archive_filename)" ( identifier ))) ;) (expression_statement "maybequit();" (call_expression "maybequit()" identifier (argument_list "()" ( ))) ;) (return_statement "return (bfd *)0x0;" return (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (((file != (char *)0x0) && (target == (char *)0x0)) && (lVar5 = bfd_openr(file), lVar5 != 0))\n    {\n      iVar3 = bfd_check_format(lVar5,1);\n      if (iVar3 != 0) {\n        target = (char *)**(undefined8 **)(lVar5 + 8);\n      }\n      bfd_close(lVar5);\n    }" if (parenthesized_expression "(((file != (char *)0x0) && (target == (char *)0x0)) && (lVar5 = bfd_openr(file), lVar5 != 0))" ( (binary_expression "((file != (char *)0x0) && (target == (char *)0x0)) && (lVar5 = bfd_openr(file), lVar5 != 0)" (parenthesized_expression "((file != (char *)0x0) && (target == (char *)0x0))" ( (binary_expression "(file != (char *)0x0) && (target == (char *)0x0)" (parenthesized_expression "(file != (char *)0x0)" ( (binary_expression "file != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(target == (char *)0x0)" ( (binary_expression "target == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(lVar5 = bfd_openr(file), lVar5 != 0)" ( (comma_expression "lVar5 = bfd_openr(file), lVar5 != 0" (assignment_expression "lVar5 = bfd_openr(file)" identifier = (call_expression "bfd_openr(file)" identifier (argument_list "(file)" ( identifier )))) , (binary_expression "lVar5 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      iVar3 = bfd_check_format(lVar5,1);\n      if (iVar3 != 0) {\n        target = (char *)**(undefined8 **)(lVar5 + 8);\n      }\n      bfd_close(lVar5);\n    }" { (expression_statement "iVar3 = bfd_check_format(lVar5,1);" (assignment_expression "iVar3 = bfd_check_format(lVar5,1)" identifier = (call_expression "bfd_check_format(lVar5,1)" identifier (argument_list "(lVar5,1)" ( identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n        target = (char *)**(undefined8 **)(lVar5 + 8);\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        target = (char *)**(undefined8 **)(lVar5 + 8);\n      }" { (expression_statement "target = (char *)**(undefined8 **)(lVar5 + 8);" (assignment_expression "target = (char *)**(undefined8 **)(lVar5 + 8)" identifier = (cast_expression "(char *)**(undefined8 **)(lVar5 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined8 **)(lVar5 + 8)" * (pointer_expression "*(undefined8 **)(lVar5 + 8)" * (cast_expression "(undefined8 **)(lVar5 + 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar5 + 8)" ( (binary_expression "lVar5 + 8" identifier + number_literal) ))))))) ;) })) (expression_statement "bfd_close(lVar5);" (call_expression "bfd_close(lVar5)" identifier (argument_list "(lVar5)" ( identifier ))) ;) })) (expression_statement "lVar5 = bfd_openw(archive_filename,target);" (assignment_expression "lVar5 = bfd_openw(archive_filename,target)" identifier = (call_expression "bfd_openw(archive_filename,target)" identifier (argument_list "(archive_filename,target)" ( identifier , identifier )))) ;) (if_statement "if (((lVar5 == 0) || (iVar3 = bfd_set_format(lVar5,2), iVar3 == 0)) ||\n       (iVar3 = bfd_close(lVar5), iVar3 == 0)) goto LAB_001048a5;" if (parenthesized_expression "(((lVar5 == 0) || (iVar3 = bfd_set_format(lVar5,2), iVar3 == 0)) ||\n       (iVar3 = bfd_close(lVar5), iVar3 == 0))" ( (binary_expression "((lVar5 == 0) || (iVar3 = bfd_set_format(lVar5,2), iVar3 == 0)) ||\n       (iVar3 = bfd_close(lVar5), iVar3 == 0)" (parenthesized_expression "((lVar5 == 0) || (iVar3 = bfd_set_format(lVar5,2), iVar3 == 0))" ( (binary_expression "(lVar5 == 0) || (iVar3 = bfd_set_format(lVar5,2), iVar3 == 0)" (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = bfd_set_format(lVar5,2), iVar3 == 0)" ( (comma_expression "iVar3 = bfd_set_format(lVar5,2), iVar3 == 0" (assignment_expression "iVar3 = bfd_set_format(lVar5,2)" identifier = (call_expression "bfd_set_format(lVar5,2)" identifier (argument_list "(lVar5,2)" ( identifier , number_literal )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar3 = bfd_close(lVar5), iVar3 == 0)" ( (comma_expression "iVar3 = bfd_close(lVar5), iVar3 == 0" (assignment_expression "iVar3 = bfd_close(lVar5)" identifier = (call_expression "bfd_close(lVar5)" identifier (argument_list "(lVar5)" ( identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_001048a5;" goto statement_identifier ;)) (expression_statement "pcVar9 = archive_filename;" (assignment_expression "pcVar9 = archive_filename" identifier = identifier) ;) (if_statement "if (silent_create == 0) {\n      pcVar9 = (char *)dcgettext(0,"creating %s",5);\n      non_fatal(pcVar9,archive_filename);\n      pcVar9 = archive_filename;\n    }" if (parenthesized_expression "(silent_create == 0)" ( (binary_expression "silent_create == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar9 = (char *)dcgettext(0,"creating %s",5);\n      non_fatal(pcVar9,archive_filename);\n      pcVar9 = archive_filename;\n    }" { (expression_statement "pcVar9 = (char *)dcgettext(0,"creating %s",5);" (assignment_expression "pcVar9 = (char *)dcgettext(0,"creating %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"creating %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"creating %s",5)" identifier (argument_list "(0,"creating %s",5)" ( number_literal , (string_literal ""creating %s"" " string_content ") , number_literal ))))) ;) (expression_statement "non_fatal(pcVar9,archive_filename);" (call_expression "non_fatal(pcVar9,archive_filename)" identifier (argument_list "(pcVar9,archive_filename)" ( identifier , identifier ))) ;) (expression_statement "pcVar9 = archive_filename;" (assignment_expression "pcVar9 = archive_filename" identifier = identifier) ;) })) })) (expression_statement "output_filename = pcVar9;" (assignment_expression "output_filename = pcVar9" identifier = identifier) ;) (expression_statement "pbVar6 = (bfd *)bfd_openr(archive_filename,target);" (assignment_expression "pbVar6 = (bfd *)bfd_openr(archive_filename,target)" identifier = (cast_expression "(bfd *)bfd_openr(archive_filename,target)" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_openr(archive_filename,target)" identifier (argument_list "(archive_filename,target)" ( identifier , identifier ))))) ;) (if_statement "if (pbVar6 != (bfd *)0x0) {\n    iVar3 = bfd_check_format_matches(pbVar6,2,&matching);\n    if (iVar3 == 0) {\n      bfd_nonfatal(archive_filename);\n      iVar3 = bfd_get_error();\n      if (iVar3 == 0xd) {\n        list_matching_formats(matching);\n        free(matching);\n      }\n                    /* WARNING: Subroutine does not return */\n      xexit(1);\n    }\n    if (((operation == replace) || (operation == quick_append)) &&\n       (lVar5 = bfd_openr_next_archived_file(pbVar6,0), lVar5 != 0)) {\n      bVar2 = pbVar6->field_0x48 & 1;\n      if (make_thin_archive == 0) {\n        if (bVar2 != 0) {\n          pcVar9 = pbVar6->filename;\n          pcVar10 = "Cannot convert existing thin library %s to normal format";\n          goto LAB_00104818;\n        }\n      }\n      else if (bVar2 == 0) {\n        pcVar9 = pbVar6->filename;\n        pcVar10 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n        pcVar10 = (char *)dcgettext(0,pcVar10,5);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar10,pcVar9);\n      }\n    }\n    pbVar7 = (bfd *)bfd_openr_next_archived_file(pbVar6,0);\n    pbVar8 = pbVar6;\n    while (pbVar1 = pbVar7, pbVar1 != (bfd *)0x0) {\n      pbVar8->archive_next = pbVar1;\n      pbVar7 = (bfd *)bfd_openr_next_archived_file(pbVar6,pbVar1);\n      pbVar8 = pbVar1;\n    }\n    pbVar8->archive_next = (bfd *)0x0;\n    iVar3 = bfd_get_error();\n    if (iVar3 == 9) {\n      return pbVar6;\n    }\n  }" if (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)) )) (compound_statement "{\n    iVar3 = bfd_check_format_matches(pbVar6,2,&matching);\n    if (iVar3 == 0) {\n      bfd_nonfatal(archive_filename);\n      iVar3 = bfd_get_error();\n      if (iVar3 == 0xd) {\n        list_matching_formats(matching);\n        free(matching);\n      }\n                    /* WARNING: Subroutine does not return */\n      xexit(1);\n    }\n    if (((operation == replace) || (operation == quick_append)) &&\n       (lVar5 = bfd_openr_next_archived_file(pbVar6,0), lVar5 != 0)) {\n      bVar2 = pbVar6->field_0x48 & 1;\n      if (make_thin_archive == 0) {\n        if (bVar2 != 0) {\n          pcVar9 = pbVar6->filename;\n          pcVar10 = "Cannot convert existing thin library %s to normal format";\n          goto LAB_00104818;\n        }\n      }\n      else if (bVar2 == 0) {\n        pcVar9 = pbVar6->filename;\n        pcVar10 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n        pcVar10 = (char *)dcgettext(0,pcVar10,5);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar10,pcVar9);\n      }\n    }\n    pbVar7 = (bfd *)bfd_openr_next_archived_file(pbVar6,0);\n    pbVar8 = pbVar6;\n    while (pbVar1 = pbVar7, pbVar1 != (bfd *)0x0) {\n      pbVar8->archive_next = pbVar1;\n      pbVar7 = (bfd *)bfd_openr_next_archived_file(pbVar6,pbVar1);\n      pbVar8 = pbVar1;\n    }\n    pbVar8->archive_next = (bfd *)0x0;\n    iVar3 = bfd_get_error();\n    if (iVar3 == 9) {\n      return pbVar6;\n    }\n  }" { (expression_statement "iVar3 = bfd_check_format_matches(pbVar6,2,&matching);" (assignment_expression "iVar3 = bfd_check_format_matches(pbVar6,2,&matching)" identifier = (call_expression "bfd_check_format_matches(pbVar6,2,&matching)" identifier (argument_list "(pbVar6,2,&matching)" ( identifier , number_literal , (pointer_expression "&matching" & identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n      bfd_nonfatal(archive_filename);\n      iVar3 = bfd_get_error();\n      if (iVar3 == 0xd) {\n        list_matching_formats(matching);\n        free(matching);\n      }\n                    /* WARNING: Subroutine does not return */\n      xexit(1);\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      bfd_nonfatal(archive_filename);\n      iVar3 = bfd_get_error();\n      if (iVar3 == 0xd) {\n        list_matching_formats(matching);\n        free(matching);\n      }\n                    /* WARNING: Subroutine does not return */\n      xexit(1);\n    }" { (expression_statement "bfd_nonfatal(archive_filename);" (call_expression "bfd_nonfatal(archive_filename)" identifier (argument_list "(archive_filename)" ( identifier ))) ;) (expression_statement "iVar3 = bfd_get_error();" (assignment_expression "iVar3 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0xd) {\n        list_matching_formats(matching);\n        free(matching);\n      }" if (parenthesized_expression "(iVar3 == 0xd)" ( (binary_expression "iVar3 == 0xd" identifier == number_literal) )) (compound_statement "{\n        list_matching_formats(matching);\n        free(matching);\n      }" { (expression_statement "list_matching_formats(matching);" (call_expression "list_matching_formats(matching)" identifier (argument_list "(matching)" ( identifier ))) ;) (expression_statement "free(matching);" (call_expression "free(matching)" identifier (argument_list "(matching)" ( identifier ))) ;) })) comment (expression_statement "xexit(1);" (call_expression "xexit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (if_statement "if (((operation == replace) || (operation == quick_append)) &&\n       (lVar5 = bfd_openr_next_archived_file(pbVar6,0), lVar5 != 0)) {\n      bVar2 = pbVar6->field_0x48 & 1;\n      if (make_thin_archive == 0) {\n        if (bVar2 != 0) {\n          pcVar9 = pbVar6->filename;\n          pcVar10 = "Cannot convert existing thin library %s to normal format";\n          goto LAB_00104818;\n        }\n      }\n      else if (bVar2 == 0) {\n        pcVar9 = pbVar6->filename;\n        pcVar10 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n        pcVar10 = (char *)dcgettext(0,pcVar10,5);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar10,pcVar9);\n      }\n    }" if (parenthesized_expression "(((operation == replace) || (operation == quick_append)) &&\n       (lVar5 = bfd_openr_next_archived_file(pbVar6,0), lVar5 != 0))" ( (binary_expression "((operation == replace) || (operation == quick_append)) &&\n       (lVar5 = bfd_openr_next_archived_file(pbVar6,0), lVar5 != 0)" (parenthesized_expression "((operation == replace) || (operation == quick_append))" ( (binary_expression "(operation == replace) || (operation == quick_append)" (parenthesized_expression "(operation == replace)" ( (binary_expression "operation == replace" identifier == identifier) )) || (parenthesized_expression "(operation == quick_append)" ( (binary_expression "operation == quick_append" identifier == identifier) ))) )) && (parenthesized_expression "(lVar5 = bfd_openr_next_archived_file(pbVar6,0), lVar5 != 0)" ( (comma_expression "lVar5 = bfd_openr_next_archived_file(pbVar6,0), lVar5 != 0" (assignment_expression "lVar5 = bfd_openr_next_archived_file(pbVar6,0)" identifier = (call_expression "bfd_openr_next_archived_file(pbVar6,0)" identifier (argument_list "(pbVar6,0)" ( identifier , number_literal )))) , (binary_expression "lVar5 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      bVar2 = pbVar6->field_0x48 & 1;\n      if (make_thin_archive == 0) {\n        if (bVar2 != 0) {\n          pcVar9 = pbVar6->filename;\n          pcVar10 = "Cannot convert existing thin library %s to normal format";\n          goto LAB_00104818;\n        }\n      }\n      else if (bVar2 == 0) {\n        pcVar9 = pbVar6->filename;\n        pcVar10 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n        pcVar10 = (char *)dcgettext(0,pcVar10,5);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar10,pcVar9);\n      }\n    }" { (expression_statement "bVar2 = pbVar6->field_0x48 & 1;" (assignment_expression "bVar2 = pbVar6->field_0x48 & 1" identifier = (binary_expression "pbVar6->field_0x48 & 1" (field_expression "pbVar6->field_0x48" identifier -> field_identifier) & number_literal)) ;) (if_statement "if (make_thin_archive == 0) {\n        if (bVar2 != 0) {\n          pcVar9 = pbVar6->filename;\n          pcVar10 = "Cannot convert existing thin library %s to normal format";\n          goto LAB_00104818;\n        }\n      }\n      else if (bVar2 == 0) {\n        pcVar9 = pbVar6->filename;\n        pcVar10 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n        pcVar10 = (char *)dcgettext(0,pcVar10,5);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar10,pcVar9);\n      }" if (parenthesized_expression "(make_thin_archive == 0)" ( (binary_expression "make_thin_archive == 0" identifier == number_literal) )) (compound_statement "{\n        if (bVar2 != 0) {\n          pcVar9 = pbVar6->filename;\n          pcVar10 = "Cannot convert existing thin library %s to normal format";\n          goto LAB_00104818;\n        }\n      }" { (if_statement "if (bVar2 != 0) {\n          pcVar9 = pbVar6->filename;\n          pcVar10 = "Cannot convert existing thin library %s to normal format";\n          goto LAB_00104818;\n        }" if (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          pcVar9 = pbVar6->filename;\n          pcVar10 = "Cannot convert existing thin library %s to normal format";\n          goto LAB_00104818;\n        }" { (expression_statement "pcVar9 = pbVar6->filename;" (assignment_expression "pcVar9 = pbVar6->filename" identifier = (field_expression "pbVar6->filename" identifier -> field_identifier)) ;) (expression_statement "pcVar10 = "Cannot convert existing thin library %s to normal format";" (assignment_expression "pcVar10 = "Cannot convert existing thin library %s to normal format"" identifier = (string_literal ""Cannot convert existing thin library %s to normal format"" " string_content ")) ;) (goto_statement "goto LAB_00104818;" goto statement_identifier ;) })) }) (else_clause "else if (bVar2 == 0) {\n        pcVar9 = pbVar6->filename;\n        pcVar10 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n        pcVar10 = (char *)dcgettext(0,pcVar10,5);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar10,pcVar9);\n      }" else (if_statement "if (bVar2 == 0) {\n        pcVar9 = pbVar6->filename;\n        pcVar10 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n        pcVar10 = (char *)dcgettext(0,pcVar10,5);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar10,pcVar9);\n      }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar9 = pbVar6->filename;\n        pcVar10 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n        pcVar10 = (char *)dcgettext(0,pcVar10,5);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar10,pcVar9);\n      }" { (expression_statement "pcVar9 = pbVar6->filename;" (assignment_expression "pcVar9 = pbVar6->filename" identifier = (field_expression "pbVar6->filename" identifier -> field_identifier)) ;) (expression_statement "pcVar10 = "Cannot convert existing library %s to thin format";" (assignment_expression "pcVar10 = "Cannot convert existing library %s to thin format"" identifier = (string_literal ""Cannot convert existing library %s to thin format"" " string_content ")) ;) (labeled_statement "LAB_00104818:\n        pcVar10 = (char *)dcgettext(0,pcVar10,5);" statement_identifier : (expression_statement "pcVar10 = (char *)dcgettext(0,pcVar10,5);" (assignment_expression "pcVar10 = (char *)dcgettext(0,pcVar10,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar10,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar10,5)" identifier (argument_list "(0,pcVar10,5)" ( number_literal , identifier , number_literal ))))) ;)) comment (expression_statement "fatal(pcVar10,pcVar9);" (call_expression "fatal(pcVar10,pcVar9)" identifier (argument_list "(pcVar10,pcVar9)" ( identifier , identifier ))) ;) })))) })) (expression_statement "pbVar7 = (bfd *)bfd_openr_next_archived_file(pbVar6,0);" (assignment_expression "pbVar7 = (bfd *)bfd_openr_next_archived_file(pbVar6,0)" identifier = (cast_expression "(bfd *)bfd_openr_next_archived_file(pbVar6,0)" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_openr_next_archived_file(pbVar6,0)" identifier (argument_list "(pbVar6,0)" ( identifier , number_literal ))))) ;) (expression_statement "pbVar8 = pbVar6;" (assignment_expression "pbVar8 = pbVar6" identifier = identifier) ;) (while_statement "while (pbVar1 = pbVar7, pbVar1 != (bfd *)0x0) {\n      pbVar8->archive_next = pbVar1;\n      pbVar7 = (bfd *)bfd_openr_next_archived_file(pbVar6,pbVar1);\n      pbVar8 = pbVar1;\n    }" while (parenthesized_expression "(pbVar1 = pbVar7, pbVar1 != (bfd *)0x0)" ( (comma_expression "pbVar1 = pbVar7, pbVar1 != (bfd *)0x0" (assignment_expression "pbVar1 = pbVar7" identifier = identifier) , (binary_expression "pbVar1 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      pbVar8->archive_next = pbVar1;\n      pbVar7 = (bfd *)bfd_openr_next_archived_file(pbVar6,pbVar1);\n      pbVar8 = pbVar1;\n    }" { (expression_statement "pbVar8->archive_next = pbVar1;" (assignment_expression "pbVar8->archive_next = pbVar1" (field_expression "pbVar8->archive_next" identifier -> field_identifier) = identifier) ;) (expression_statement "pbVar7 = (bfd *)bfd_openr_next_archived_file(pbVar6,pbVar1);" (assignment_expression "pbVar7 = (bfd *)bfd_openr_next_archived_file(pbVar6,pbVar1)" identifier = (cast_expression "(bfd *)bfd_openr_next_archived_file(pbVar6,pbVar1)" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_openr_next_archived_file(pbVar6,pbVar1)" identifier (argument_list "(pbVar6,pbVar1)" ( identifier , identifier ))))) ;) (expression_statement "pbVar8 = pbVar1;" (assignment_expression "pbVar8 = pbVar1" identifier = identifier) ;) })) (expression_statement "pbVar8->archive_next = (bfd *)0x0;" (assignment_expression "pbVar8->archive_next = (bfd *)0x0" (field_expression "pbVar8->archive_next" identifier -> field_identifier) = (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar3 = bfd_get_error();" (assignment_expression "iVar3 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 9) {\n      return pbVar6;\n    }" if (parenthesized_expression "(iVar3 == 9)" ( (binary_expression "iVar3 == 9" identifier == number_literal) )) (compound_statement "{\n      return pbVar6;\n    }" { (return_statement "return pbVar6;" return identifier ;) })) })) (labeled_statement "LAB_001048a5:\n                    /* WARNING: Subroutine does not return */\n  bfd_fatal(archive_filename);" statement_identifier : comment (expression_statement "bfd_fatal(archive_filename);" (call_expression "bfd_fatal(archive_filename)" identifier (argument_list "(archive_filename)" ( identifier ))) ;)) })))
(translation_unit "undefined8 * FUN_00104620(char *param_1,long param_2)\n\n{\n  long *plVar1;\n  int iVar2;\n  int *piVar3;\n  long lVar4;\n  undefined8 *puVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  char *pcVar8;\n  void *local_b0;\n  stat local_a8;\n  \n  bfd_set_error(0);\n  if (DAT_001104b8 == (char *)0x0) {\n    DAT_001104b8 = "plugin";\n  }\n  iVar2 = __xstat(1,param_1,&local_a8);\n  pcVar8 = DAT_001104b0;\n  if (iVar2 == 0) {\nLAB_001046db:\n    DAT_001104b0 = pcVar8;\n    puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8);\n    if (puVar5 != (undefined8 *)0x0) {\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }\n  }\n  else {\n    piVar3 = __errno_location();\n    if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }\n  }\n  FUN_001077e0(param_1);\nLAB_001048ad:\n  FUN_001075b0(param_1);\n  iVar2 = bfd_get_error();\n  if (iVar2 == 0xd) {\n    FUN_001079f0(local_b0);\n    free(local_b0);\n  }\n                    \n  xexit(1);\n}\n\n" (function_definition "undefined8 * FUN_00104620(char *param_1,long param_2)\n\n{\n  long *plVar1;\n  int iVar2;\n  int *piVar3;\n  long lVar4;\n  undefined8 *puVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  char *pcVar8;\n  void *local_b0;\n  stat local_a8;\n  \n  bfd_set_error(0);\n  if (DAT_001104b8 == (char *)0x0) {\n    DAT_001104b8 = "plugin";\n  }\n  iVar2 = __xstat(1,param_1,&local_a8);\n  pcVar8 = DAT_001104b0;\n  if (iVar2 == 0) {\nLAB_001046db:\n    DAT_001104b0 = pcVar8;\n    puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8);\n    if (puVar5 != (undefined8 *)0x0) {\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }\n  }\n  else {\n    piVar3 = __errno_location();\n    if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }\n  }\n  FUN_001077e0(param_1);\nLAB_001048ad:\n  FUN_001075b0(param_1);\n  iVar2 = bfd_get_error();\n  if (iVar2 == 0xd) {\n    FUN_001079f0(local_b0);\n    free(local_b0);\n  }\n                    \n  xexit(1);\n}" type_identifier (pointer_declarator "* FUN_00104620(char *param_1,long param_2)" * (function_declarator "FUN_00104620(char *param_1,long param_2)" identifier (parameter_list "(char *param_1,long param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) )))) (compound_statement "{\n  long *plVar1;\n  int iVar2;\n  int *piVar3;\n  long lVar4;\n  undefined8 *puVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  char *pcVar8;\n  void *local_b0;\n  stat local_a8;\n  \n  bfd_set_error(0);\n  if (DAT_001104b8 == (char *)0x0) {\n    DAT_001104b8 = "plugin";\n  }\n  iVar2 = __xstat(1,param_1,&local_a8);\n  pcVar8 = DAT_001104b0;\n  if (iVar2 == 0) {\nLAB_001046db:\n    DAT_001104b0 = pcVar8;\n    puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8);\n    if (puVar5 != (undefined8 *)0x0) {\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }\n  }\n  else {\n    piVar3 = __errno_location();\n    if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }\n  }\n  FUN_001077e0(param_1);\nLAB_001048ad:\n  FUN_001075b0(param_1);\n  iVar2 = bfd_get_error();\n  if (iVar2 == 0xd) {\n    FUN_001079f0(local_b0);\n    free(local_b0);\n  }\n                    \n  xexit(1);\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "void *local_b0;" primitive_type (pointer_declarator "*local_b0" * identifier) ;) (declaration "stat local_a8;" type_identifier identifier ;) (expression_statement "bfd_set_error(0);" (call_expression "bfd_set_error(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (if_statement "if (DAT_001104b8 == (char *)0x0) {\n    DAT_001104b8 = "plugin";\n  }" if (parenthesized_expression "(DAT_001104b8 == (char *)0x0)" ( (binary_expression "DAT_001104b8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_001104b8 = "plugin";\n  }" { (expression_statement "DAT_001104b8 = "plugin";" (assignment_expression "DAT_001104b8 = "plugin"" identifier = (string_literal ""plugin"" " string_content ")) ;) })) (expression_statement "iVar2 = __xstat(1,param_1,&local_a8);" (assignment_expression "iVar2 = __xstat(1,param_1,&local_a8)" identifier = (call_expression "__xstat(1,param_1,&local_a8)" identifier (argument_list "(1,param_1,&local_a8)" ( number_literal , identifier , (pointer_expression "&local_a8" & identifier) )))) ;) (expression_statement "pcVar8 = DAT_001104b0;" (assignment_expression "pcVar8 = DAT_001104b0" identifier = identifier) ;) (if_statement "if (iVar2 == 0) {\nLAB_001046db:\n    DAT_001104b0 = pcVar8;\n    puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8);\n    if (puVar5 != (undefined8 *)0x0) {\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }\n  }\n  else {\n    piVar3 = __errno_location();\n    if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001046db:\n    DAT_001104b0 = pcVar8;\n    puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8);\n    if (puVar5 != (undefined8 *)0x0) {\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }\n  }" { (labeled_statement "LAB_001046db:\n    DAT_001104b0 = pcVar8;" statement_identifier : (expression_statement "DAT_001104b0 = pcVar8;" (assignment_expression "DAT_001104b0 = pcVar8" identifier = identifier) ;)) (expression_statement "puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8);" (assignment_expression "puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8)" identifier = (cast_expression "(undefined8 *)bfd_openr(param_1,DAT_001104b8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_openr(param_1,DAT_001104b8)" identifier (argument_list "(param_1,DAT_001104b8)" ( identifier , identifier ))))) ;) (if_statement "if (puVar5 != (undefined8 *)0x0) {\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }" if (parenthesized_expression "(puVar5 != (undefined8 *)0x0)" ( (binary_expression "puVar5 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }" { (expression_statement "iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);" (assignment_expression "iVar2 = bfd_check_format_matches(puVar5,2,&local_b0)" identifier = (call_expression "bfd_check_format_matches(puVar5,2,&local_b0)" identifier (argument_list "(puVar5,2,&local_b0)" ( identifier , number_literal , (pointer_expression "&local_b0" & identifier) )))) ;) (if_statement "if (iVar2 == 0) goto LAB_001048ad;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001048ad;" goto statement_identifier ;)) (if_statement "if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }\n      }" if (parenthesized_expression "(((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0))" ( (binary_expression "((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)" (parenthesized_expression "((DAT_00110478 == 2) || (DAT_00110478 == 7))" ( (binary_expression "(DAT_00110478 == 2) || (DAT_00110478 == 7)" (parenthesized_expression "(DAT_00110478 == 2)" ( (binary_expression "DAT_00110478 == 2" identifier == number_literal) )) || (parenthesized_expression "(DAT_00110478 == 7)" ( (binary_expression "DAT_00110478 == 7" identifier == number_literal) ))) )) && (parenthesized_expression "(lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)" ( (comma_expression "lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0" (assignment_expression "lVar4 = bfd_openr_next_archived_file(puVar5,0)" identifier = (call_expression "bfd_openr_next_archived_file(puVar5,0)" identifier (argument_list "(puVar5,0)" ( identifier , number_literal )))) , (binary_expression "lVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }\n      }" { (if_statement "if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }" if (parenthesized_expression "(DAT_001104c8 == 0)" ( (binary_expression "DAT_001104c8 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }" { (if_statement "if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }" if (parenthesized_expression "((*(byte *)(puVar5 + 9) & 1) != 0)" ( (binary_expression "(*(byte *)(puVar5 + 9) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar5 + 9) & 1)" ( (binary_expression "*(byte *)(puVar5 + 9) & 1" (pointer_expression "*(byte *)(puVar5 + 9)" * (cast_expression "(byte *)(puVar5 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 9)" ( (binary_expression "puVar5 + 9" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }" { (expression_statement "uVar6 = *puVar5;" (assignment_expression "uVar6 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "pcVar8 = "Cannot convert existing thin library %s to normal format";" (assignment_expression "pcVar8 = "Cannot convert existing thin library %s to normal format"" identifier = (string_literal ""Cannot convert existing thin library %s to normal format"" " string_content ")) ;) (goto_statement "goto LAB_00104818;" goto statement_identifier ;) })) }) (else_clause "else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }" else (if_statement "if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }" if (parenthesized_expression "((*(byte *)(puVar5 + 9) & 1) == 0)" ( (binary_expression "(*(byte *)(puVar5 + 9) & 1) == 0" (parenthesized_expression "(*(byte *)(puVar5 + 9) & 1)" ( (binary_expression "*(byte *)(puVar5 + 9) & 1" (pointer_expression "*(byte *)(puVar5 + 9)" * (cast_expression "(byte *)(puVar5 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 9)" ( (binary_expression "puVar5 + 9" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }" { (expression_statement "uVar6 = *puVar5;" (assignment_expression "uVar6 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "pcVar8 = "Cannot convert existing library %s to thin format";" (assignment_expression "pcVar8 = "Cannot convert existing library %s to thin format"" identifier = (string_literal ""Cannot convert existing library %s to thin format"" " string_content ")) ;) (labeled_statement "LAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);" statement_identifier : (expression_statement "uVar7 = dcgettext(0,pcVar8,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar8,5)" identifier = (call_expression "dcgettext(0,pcVar8,5)" identifier (argument_list "(0,pcVar8,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_00107860(uVar7,uVar6);" (call_expression "FUN_00107860(uVar7,uVar6)" identifier (argument_list "(uVar7,uVar6)" ( identifier , identifier ))) ;) })))) })) (expression_statement "plVar1 = puVar5 + 0x1b;" (assignment_expression "plVar1 = puVar5 + 0x1b" identifier = (binary_expression "puVar5 + 0x1b" identifier + number_literal)) ;) (for_statement "for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }" for ( (assignment_expression "lVar4 = bfd_openr_next_archived_file(puVar5,0)" identifier = (call_expression "bfd_openr_next_archived_file(puVar5,0)" identifier (argument_list "(puVar5,0)" ( identifier , number_literal )))) ; (binary_expression "lVar4 != 0" identifier != number_literal) ; (assignment_expression "lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)" identifier = (call_expression "bfd_openr_next_archived_file(puVar5,lVar4)" identifier (argument_list "(puVar5,lVar4)" ( identifier , identifier )))) ) (compound_statement "{\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }" { (expression_statement "*plVar1 = lVar4;" (assignment_expression "*plVar1 = lVar4" (pointer_expression "*plVar1" * identifier) = identifier) ;) (expression_statement "plVar1 = (long *)(lVar4 + 0xd8);" (assignment_expression "plVar1 = (long *)(lVar4 + 0xd8)" identifier = (cast_expression "(long *)(lVar4 + 0xd8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0xd8)" ( (binary_expression "lVar4 + 0xd8" identifier + number_literal) )))) ;) })) (expression_statement "*plVar1 = 0;" (assignment_expression "*plVar1 = 0" (pointer_expression "*plVar1" * identifier) = number_literal) ;) (expression_statement "iVar2 = bfd_get_error();" (assignment_expression "iVar2 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 9) {\n        return puVar5;\n      }" if (parenthesized_expression "(iVar2 == 9)" ( (binary_expression "iVar2 == 9" identifier == number_literal) )) (compound_statement "{\n        return puVar5;\n      }" { (return_statement "return puVar5;" return identifier ;) })) })) }) (else_clause "else {\n    piVar3 = __errno_location();\n    if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }\n  }" else (compound_statement "{\n    piVar3 = __errno_location();\n    if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }\n  }" { (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }" if (parenthesized_expression "(*piVar3 == 2)" ( (binary_expression "*piVar3 == 2" (pointer_expression "*piVar3" * identifier) == number_literal) )) (compound_statement "{\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }" { (if_statement "if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }" if (parenthesized_expression "(DAT_00110470 == 0)" ( (binary_expression "DAT_00110470 == 0" identifier == number_literal) )) (compound_statement "{\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }" { (expression_statement "fprintf(stderr,"%s: ",DAT_001106b0);" (call_expression "fprintf(stderr,"%s: ",DAT_001106b0)" identifier (argument_list "(stderr,"%s: ",DAT_001106b0)" ( identifier , (string_literal ""%s: "" " string_content ") , identifier ))) ;) (expression_statement "perror(param_1);" (call_expression "perror(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "FUN_00106580();" (call_expression "FUN_00106580()" identifier (argument_list "()" ( ))) ;) (return_statement "return (undefined8 *)0x0;" return (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }" if (parenthesized_expression "(((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0))" ( (binary_expression "((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)" (parenthesized_expression "((param_2 != 0) && (DAT_001104b8 == (char *)0x0))" ( (binary_expression "(param_2 != 0) && (DAT_001104b8 == (char *)0x0)" (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_001104b8 == (char *)0x0)" ( (binary_expression "DAT_001104b8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(lVar4 = bfd_openr(param_2), lVar4 != 0)" ( (comma_expression "lVar4 = bfd_openr(param_2), lVar4 != 0" (assignment_expression "lVar4 = bfd_openr(param_2)" identifier = (call_expression "bfd_openr(param_2)" identifier (argument_list "(param_2)" ( identifier )))) , (binary_expression "lVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }" { (expression_statement "iVar2 = bfd_check_format(lVar4,1);" (assignment_expression "iVar2 = bfd_check_format(lVar4,1)" identifier = (call_expression "bfd_check_format(lVar4,1)" identifier (argument_list "(lVar4,1)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }" { (expression_statement "DAT_001104b8 = (char *)**(long **)(lVar4 + 8);" (assignment_expression "DAT_001104b8 = (char *)**(long **)(lVar4 + 8)" identifier = (cast_expression "(char *)**(long **)(lVar4 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(long **)(lVar4 + 8)" * (pointer_expression "*(long **)(lVar4 + 8)" * (cast_expression "(long **)(lVar4 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar4 + 8)" ( (binary_expression "lVar4 + 8" identifier + number_literal) ))))))) ;) })) (expression_statement "bfd_close(lVar4);" (call_expression "bfd_close(lVar4)" identifier (argument_list "(lVar4)" ( identifier ))) ;) })) (expression_statement "lVar4 = bfd_openw(param_1,DAT_001104b8);" (assignment_expression "lVar4 = bfd_openw(param_1,DAT_001104b8)" identifier = (call_expression "bfd_openw(param_1,DAT_001104b8)" identifier (argument_list "(param_1,DAT_001104b8)" ( identifier , identifier )))) ;) (if_statement "if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }" if (parenthesized_expression "(((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0))" ( (binary_expression "((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)" (parenthesized_expression "((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0))" ( (binary_expression "(lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)" (parenthesized_expression "(lVar4 != 0)" ( (binary_expression "lVar4 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)" ( (comma_expression "iVar2 = bfd_set_format(lVar4,2), iVar2 != 0" (assignment_expression "iVar2 = bfd_set_format(lVar4,2)" identifier = (call_expression "bfd_set_format(lVar4,2)" identifier (argument_list "(lVar4,2)" ( identifier , number_literal )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(iVar2 = bfd_close(lVar4), iVar2 != 0)" ( (comma_expression "iVar2 = bfd_close(lVar4), iVar2 != 0" (assignment_expression "iVar2 = bfd_close(lVar4)" identifier = (call_expression "bfd_close(lVar4)" identifier (argument_list "(lVar4)" ( identifier )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }" { (expression_statement "pcVar8 = param_1;" (assignment_expression "pcVar8 = param_1" identifier = identifier) ;) (if_statement "if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }" if (parenthesized_expression "(DAT_0011049c == 0)" ( (binary_expression "DAT_0011049c == 0" identifier == number_literal) )) (compound_statement "{\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }" { (expression_statement "uVar6 = dcgettext(0,"creating %s",5);" (assignment_expression "uVar6 = dcgettext(0,"creating %s",5)" identifier = (call_expression "dcgettext(0,"creating %s",5)" identifier (argument_list "(0,"creating %s",5)" ( number_literal , (string_literal ""creating %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00107900(uVar6,param_1);" (call_expression "FUN_00107900(uVar6,param_1)" identifier (argument_list "(uVar6,param_1)" ( identifier , identifier ))) ;) (expression_statement "pcVar8 = param_1;" (assignment_expression "pcVar8 = param_1" identifier = identifier) ;) })) (goto_statement "goto LAB_001046db;" goto statement_identifier ;) })) })) }))) (expression_statement "FUN_001077e0(param_1);" (call_expression "FUN_001077e0(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (labeled_statement "LAB_001048ad:\n  FUN_001075b0(param_1);" statement_identifier : (expression_statement "FUN_001075b0(param_1);" (call_expression "FUN_001075b0(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;)) (expression_statement "iVar2 = bfd_get_error();" (assignment_expression "iVar2 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 0xd) {\n    FUN_001079f0(local_b0);\n    free(local_b0);\n  }" if (parenthesized_expression "(iVar2 == 0xd)" ( (binary_expression "iVar2 == 0xd" identifier == number_literal) )) (compound_statement "{\n    FUN_001079f0(local_b0);\n    free(local_b0);\n  }" { (expression_statement "FUN_001079f0(local_b0);" (call_expression "FUN_001079f0(local_b0)" identifier (argument_list "(local_b0)" ( identifier ))) ;) (expression_statement "free(local_b0);" (call_expression "free(local_b0)" identifier (argument_list "(local_b0)" ( identifier ))) ;) })) (expression_statement "xexit(1);" (call_expression "xexit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) )))) (compound_statement { (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( 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 = (string_literal " string_content ")) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (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 = (call_expression IDENT (argument_list ( IDENT , LIT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (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) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (for_statement for ( (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) })) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })))
(function_definition "undefined8 * FUN_00104620(char *param_1,long param_2)\n\n{\n  long *plVar1;\n  int iVar2;\n  int *piVar3;\n  long lVar4;\n  undefined8 *puVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  char *pcVar8;\n  void *local_b0;\n  stat local_a8;\n  \n  bfd_set_error(0);\n  if (DAT_001104b8 == (char *)0x0) {\n    DAT_001104b8 = "plugin";\n  }\n  iVar2 = __xstat(1,param_1,&local_a8);\n  pcVar8 = DAT_001104b0;\n  if (iVar2 == 0) {\nLAB_001046db:\n    DAT_001104b0 = pcVar8;\n    puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8);\n    if (puVar5 != (undefined8 *)0x0) {\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }\n  }\n  else {\n    piVar3 = __errno_location();\n    if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }\n  }\n  FUN_001077e0(param_1);\nLAB_001048ad:\n  FUN_001075b0(param_1);\n  iVar2 = bfd_get_error();\n  if (iVar2 == 0xd) {\n    FUN_001079f0(local_b0);\n    free(local_b0);\n  }\n                    \n  xexit(1);\n}" (type_identifier "undefined8") (pointer_declarator "* FUN_00104620(char *param_1,long param_2)" (* "*") (function_declarator "FUN_00104620(char *param_1,long param_2)" (identifier "FUN_00104620") (parameter_list "(char *param_1,long param_2)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) () ")")))) (compound_statement "{\n  long *plVar1;\n  int iVar2;\n  int *piVar3;\n  long lVar4;\n  undefined8 *puVar5;\n  undefined8 uVar6;\n  undefined8 uVar7;\n  char *pcVar8;\n  void *local_b0;\n  stat local_a8;\n  \n  bfd_set_error(0);\n  if (DAT_001104b8 == (char *)0x0) {\n    DAT_001104b8 = "plugin";\n  }\n  iVar2 = __xstat(1,param_1,&local_a8);\n  pcVar8 = DAT_001104b0;\n  if (iVar2 == 0) {\nLAB_001046db:\n    DAT_001104b0 = pcVar8;\n    puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8);\n    if (puVar5 != (undefined8 *)0x0) {\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }\n  }\n  else {\n    piVar3 = __errno_location();\n    if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }\n  }\n  FUN_001077e0(param_1);\nLAB_001048ad:\n  FUN_001075b0(param_1);\n  iVar2 = bfd_get_error();\n  if (iVar2 == 0xd) {\n    FUN_001079f0(local_b0);\n    free(local_b0);\n  }\n                    \n  xexit(1);\n}" ({ "{") (declaration "long *plVar1;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar1" (* "*") (identifier "plVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (declaration "undefined8 *puVar5;" (type_identifier "undefined8") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined8 uVar6;" (type_identifier "undefined8") (identifier "uVar6") (; ";")) (declaration "undefined8 uVar7;" (type_identifier "undefined8") (identifier "uVar7") (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "void *local_b0;" (primitive_type "void") (pointer_declarator "*local_b0" (* "*") (identifier "local_b0")) (; ";")) (declaration "stat local_a8;" (type_identifier "stat") (identifier "local_a8") (; ";")) (expression_statement "bfd_set_error(0);" (call_expression "bfd_set_error(0)" (identifier "bfd_set_error") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (if_statement "if (DAT_001104b8 == (char *)0x0) {\n    DAT_001104b8 = "plugin";\n  }" (if "if") (parenthesized_expression "(DAT_001104b8 == (char *)0x0)" (( "(") (binary_expression "DAT_001104b8 == (char *)0x0" (identifier "DAT_001104b8") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    DAT_001104b8 = "plugin";\n  }" ({ "{") (expression_statement "DAT_001104b8 = "plugin";" (assignment_expression "DAT_001104b8 = "plugin"" (identifier "DAT_001104b8") (= "=") (string_literal ""plugin"" (" """) (string_content "plugin") (" """))) (; ";")) (} "}"))) (expression_statement "iVar2 = __xstat(1,param_1,&local_a8);" (assignment_expression "iVar2 = __xstat(1,param_1,&local_a8)" (identifier "iVar2") (= "=") (call_expression "__xstat(1,param_1,&local_a8)" (identifier "__xstat") (argument_list "(1,param_1,&local_a8)" (( "(") (number_literal "1") (, ",") (identifier "param_1") (, ",") (pointer_expression "&local_a8" (& "&") (identifier "local_a8")) () ")")))) (; ";")) (expression_statement "pcVar8 = DAT_001104b0;" (assignment_expression "pcVar8 = DAT_001104b0" (identifier "pcVar8") (= "=") (identifier "DAT_001104b0")) (; ";")) (if_statement "if (iVar2 == 0) {\nLAB_001046db:\n    DAT_001104b0 = pcVar8;\n    puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8);\n    if (puVar5 != (undefined8 *)0x0) {\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }\n  }\n  else {\n    piVar3 = __errno_location();\n    if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001046db:\n    DAT_001104b0 = pcVar8;\n    puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8);\n    if (puVar5 != (undefined8 *)0x0) {\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }\n  }" ({ "{") (labeled_statement "LAB_001046db:\n    DAT_001104b0 = pcVar8;" (statement_identifier "LAB_001046db") (: ":") (expression_statement "DAT_001104b0 = pcVar8;" (assignment_expression "DAT_001104b0 = pcVar8" (identifier "DAT_001104b0") (= "=") (identifier "pcVar8")) (; ";"))) (expression_statement "puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8);" (assignment_expression "puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8)" (identifier "puVar5") (= "=") (cast_expression "(undefined8 *)bfd_openr(param_1,DAT_001104b8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "bfd_openr(param_1,DAT_001104b8)" (identifier "bfd_openr") (argument_list "(param_1,DAT_001104b8)" (( "(") (identifier "param_1") (, ",") (identifier "DAT_001104b8") () ")"))))) (; ";")) (if_statement "if (puVar5 != (undefined8 *)0x0) {\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }" (if "if") (parenthesized_expression "(puVar5 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar5 != (undefined8 *)0x0" (identifier "puVar5") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);\n      if (iVar2 == 0) goto LAB_001048ad;\n      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }\n      }\n      plVar1 = puVar5 + 0x1b;\n      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }\n      *plVar1 = 0;\n      iVar2 = bfd_get_error();\n      if (iVar2 == 9) {\n        return puVar5;\n      }\n    }" ({ "{") (expression_statement "iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);" (assignment_expression "iVar2 = bfd_check_format_matches(puVar5,2,&local_b0)" (identifier "iVar2") (= "=") (call_expression "bfd_check_format_matches(puVar5,2,&local_b0)" (identifier "bfd_check_format_matches") (argument_list "(puVar5,2,&local_b0)" (( "(") (identifier "puVar5") (, ",") (number_literal "2") (, ",") (pointer_expression "&local_b0" (& "&") (identifier "local_b0")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_001048ad;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001048ad;" (goto "goto") (statement_identifier "LAB_001048ad") (; ";"))) (if_statement "if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }\n      }" (if "if") (parenthesized_expression "(((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0))" (( "(") (binary_expression "((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&\n         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)" (parenthesized_expression "((DAT_00110478 == 2) || (DAT_00110478 == 7))" (( "(") (binary_expression "(DAT_00110478 == 2) || (DAT_00110478 == 7)" (parenthesized_expression "(DAT_00110478 == 2)" (( "(") (binary_expression "DAT_00110478 == 2" (identifier "DAT_00110478") (== "==") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(DAT_00110478 == 7)" (( "(") (binary_expression "DAT_00110478 == 7" (identifier "DAT_00110478") (== "==") (number_literal "7")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)" (( "(") (comma_expression "lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0" (assignment_expression "lVar4 = bfd_openr_next_archived_file(puVar5,0)" (identifier "lVar4") (= "=") (call_expression "bfd_openr_next_archived_file(puVar5,0)" (identifier "bfd_openr_next_archived_file") (argument_list "(puVar5,0)" (( "(") (identifier "puVar5") (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "lVar4 != 0" (identifier "lVar4") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }\n      }" ({ "{") (if_statement "if (DAT_001104c8 == 0) {\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }\n        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }" (if "if") (parenthesized_expression "(DAT_001104c8 == 0)" (( "(") (binary_expression "DAT_001104c8 == 0" (identifier "DAT_001104c8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }\n        }" ({ "{") (if_statement "if ((*(byte *)(puVar5 + 9) & 1) != 0) {\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }" (if "if") (parenthesized_expression "((*(byte *)(puVar5 + 9) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(puVar5 + 9) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar5 + 9) & 1)" (( "(") (binary_expression "*(byte *)(puVar5 + 9) & 1" (pointer_expression "*(byte *)(puVar5 + 9)" (* "*") (cast_expression "(byte *)(puVar5 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 9)" (( "(") (binary_expression "puVar5 + 9" (identifier "puVar5") (+ "+") (number_literal "9")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar6 = *puVar5;\n            pcVar8 = "Cannot convert existing thin library %s to normal format";\n            goto LAB_00104818;\n          }" ({ "{") (expression_statement "uVar6 = *puVar5;" (assignment_expression "uVar6 = *puVar5" (identifier "uVar6") (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "pcVar8 = "Cannot convert existing thin library %s to normal format";" (assignment_expression "pcVar8 = "Cannot convert existing thin library %s to normal format"" (identifier "pcVar8") (= "=") (string_literal ""Cannot convert existing thin library %s to normal format"" (" """) (string_content "Cannot convert existing thin library %s to normal format") (" """))) (; ";")) (goto_statement "goto LAB_00104818;" (goto "goto") (statement_identifier "LAB_00104818") (; ";")) (} "}"))) (} "}")) (else_clause "else if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }" (else "else") (if_statement "if ((*(byte *)(puVar5 + 9) & 1) == 0) {\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }" (if "if") (parenthesized_expression "((*(byte *)(puVar5 + 9) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(puVar5 + 9) & 1) == 0" (parenthesized_expression "(*(byte *)(puVar5 + 9) & 1)" (( "(") (binary_expression "*(byte *)(puVar5 + 9) & 1" (pointer_expression "*(byte *)(puVar5 + 9)" (* "*") (cast_expression "(byte *)(puVar5 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 9)" (( "(") (binary_expression "puVar5 + 9" (identifier "puVar5") (+ "+") (number_literal "9")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar6 = *puVar5;\n          pcVar8 = "Cannot convert existing library %s to thin format";\nLAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);\n                    \n          FUN_00107860(uVar7,uVar6);\n        }" ({ "{") (expression_statement "uVar6 = *puVar5;" (assignment_expression "uVar6 = *puVar5" (identifier "uVar6") (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "pcVar8 = "Cannot convert existing library %s to thin format";" (assignment_expression "pcVar8 = "Cannot convert existing library %s to thin format"" (identifier "pcVar8") (= "=") (string_literal ""Cannot convert existing library %s to thin format"" (" """) (string_content "Cannot convert existing library %s to thin format") (" """))) (; ";")) (labeled_statement "LAB_00104818:\n          uVar7 = dcgettext(0,pcVar8,5);" (statement_identifier "LAB_00104818") (: ":") (expression_statement "uVar7 = dcgettext(0,pcVar8,5);" (assignment_expression "uVar7 = dcgettext(0,pcVar8,5)" (identifier "uVar7") (= "=") (call_expression "dcgettext(0,pcVar8,5)" (identifier "dcgettext") (argument_list "(0,pcVar8,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar8") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_00107860(uVar7,uVar6);" (call_expression "FUN_00107860(uVar7,uVar6)" (identifier "FUN_00107860") (argument_list "(uVar7,uVar6)" (( "(") (identifier "uVar7") (, ",") (identifier "uVar6") () ")"))) (; ";")) (} "}"))))) (} "}"))) (expression_statement "plVar1 = puVar5 + 0x1b;" (assignment_expression "plVar1 = puVar5 + 0x1b" (identifier "plVar1") (= "=") (binary_expression "puVar5 + 0x1b" (identifier "puVar5") (+ "+") (number_literal "0x1b"))) (; ";")) (for_statement "for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;\n          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }" (for "for") (( "(") (assignment_expression "lVar4 = bfd_openr_next_archived_file(puVar5,0)" (identifier "lVar4") (= "=") (call_expression "bfd_openr_next_archived_file(puVar5,0)" (identifier "bfd_openr_next_archived_file") (argument_list "(puVar5,0)" (( "(") (identifier "puVar5") (, ",") (number_literal "0") () ")")))) (; ";") (binary_expression "lVar4 != 0" (identifier "lVar4") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)" (identifier "lVar4") (= "=") (call_expression "bfd_openr_next_archived_file(puVar5,lVar4)" (identifier "bfd_openr_next_archived_file") (argument_list "(puVar5,lVar4)" (( "(") (identifier "puVar5") (, ",") (identifier "lVar4") () ")")))) () ")") (compound_statement "{\n        *plVar1 = lVar4;\n        plVar1 = (long *)(lVar4 + 0xd8);\n      }" ({ "{") (expression_statement "*plVar1 = lVar4;" (assignment_expression "*plVar1 = lVar4" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (= "=") (identifier "lVar4")) (; ";")) (expression_statement "plVar1 = (long *)(lVar4 + 0xd8);" (assignment_expression "plVar1 = (long *)(lVar4 + 0xd8)" (identifier "plVar1") (= "=") (cast_expression "(long *)(lVar4 + 0xd8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0xd8)" (( "(") (binary_expression "lVar4 + 0xd8" (identifier "lVar4") (+ "+") (number_literal "0xd8")) () ")")))) (; ";")) (} "}"))) (expression_statement "*plVar1 = 0;" (assignment_expression "*plVar1 = 0" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = bfd_get_error();" (assignment_expression "iVar2 = bfd_get_error()" (identifier "iVar2") (= "=") (call_expression "bfd_get_error()" (identifier "bfd_get_error") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar2 == 9) {\n        return puVar5;\n      }" (if "if") (parenthesized_expression "(iVar2 == 9)" (( "(") (binary_expression "iVar2 == 9" (identifier "iVar2") (== "==") (number_literal "9")) () ")")) (compound_statement "{\n        return puVar5;\n      }" ({ "{") (return_statement "return puVar5;" (return "return") (identifier "puVar5") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n    piVar3 = __errno_location();\n    if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }\n  }" (else "else") (compound_statement "{\n    piVar3 = __errno_location();\n    if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }\n  }" ({ "{") (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" (identifier "piVar3") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (*piVar3 == 2) {\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }" (if "if") (parenthesized_expression "(*piVar3 == 2)" (( "(") (binary_expression "*piVar3 == 2" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }\n      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }\n      lVar4 = bfd_openw(param_1,DAT_001104b8);\n      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }\n    }" ({ "{") (if_statement "if (DAT_00110470 == 0) {\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }" (if "if") (parenthesized_expression "(DAT_00110470 == 0)" (( "(") (binary_expression "DAT_00110470 == 0" (identifier "DAT_00110470") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        fprintf(stderr,"%s: ",DAT_001106b0);\n        perror(param_1);\n        FUN_00106580();\n        return (undefined8 *)0x0;\n      }" ({ "{") (expression_statement "fprintf(stderr,"%s: ",DAT_001106b0);" (call_expression "fprintf(stderr,"%s: ",DAT_001106b0)" (identifier "fprintf") (argument_list "(stderr,"%s: ",DAT_001106b0)" (( "(") (identifier "stderr") (, ",") (string_literal ""%s: "" (" """) (string_content "%s: ") (" """)) (, ",") (identifier "DAT_001106b0") () ")"))) (; ";")) (expression_statement "perror(param_1);" (call_expression "perror(param_1)" (identifier "perror") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "FUN_00106580();" (call_expression "FUN_00106580()" (identifier "FUN_00106580") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return (undefined8 *)0x0;" (return "return") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (if_statement "if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }" (if "if") (parenthesized_expression "(((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0))" (( "(") (binary_expression "((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&\n         (lVar4 = bfd_openr(param_2), lVar4 != 0)" (parenthesized_expression "((param_2 != 0) && (DAT_001104b8 == (char *)0x0))" (( "(") (binary_expression "(param_2 != 0) && (DAT_001104b8 == (char *)0x0)" (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(DAT_001104b8 == (char *)0x0)" (( "(") (binary_expression "DAT_001104b8 == (char *)0x0" (identifier "DAT_001104b8") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(lVar4 = bfd_openr(param_2), lVar4 != 0)" (( "(") (comma_expression "lVar4 = bfd_openr(param_2), lVar4 != 0" (assignment_expression "lVar4 = bfd_openr(param_2)" (identifier "lVar4") (= "=") (call_expression "bfd_openr(param_2)" (identifier "bfd_openr") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (, ",") (binary_expression "lVar4 != 0" (identifier "lVar4") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        iVar2 = bfd_check_format(lVar4,1);\n        if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }\n        bfd_close(lVar4);\n      }" ({ "{") (expression_statement "iVar2 = bfd_check_format(lVar4,1);" (assignment_expression "iVar2 = bfd_check_format(lVar4,1)" (identifier "iVar2") (= "=") (call_expression "bfd_check_format(lVar4,1)" (identifier "bfd_check_format") (argument_list "(lVar4,1)" (( "(") (identifier "lVar4") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);\n        }" ({ "{") (expression_statement "DAT_001104b8 = (char *)**(long **)(lVar4 + 8);" (assignment_expression "DAT_001104b8 = (char *)**(long **)(lVar4 + 8)" (identifier "DAT_001104b8") (= "=") (cast_expression "(char *)**(long **)(lVar4 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(long **)(lVar4 + 8)" (* "*") (pointer_expression "*(long **)(lVar4 + 8)" (* "*") (cast_expression "(long **)(lVar4 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar4 + 8)" (( "(") (binary_expression "lVar4 + 8" (identifier "lVar4") (+ "+") (number_literal "8")) () ")"))))))) (; ";")) (} "}"))) (expression_statement "bfd_close(lVar4);" (call_expression "bfd_close(lVar4)" (identifier "bfd_close") (argument_list "(lVar4)" (( "(") (identifier "lVar4") () ")"))) (; ";")) (} "}"))) (expression_statement "lVar4 = bfd_openw(param_1,DAT_001104b8);" (assignment_expression "lVar4 = bfd_openw(param_1,DAT_001104b8)" (identifier "lVar4") (= "=") (call_expression "bfd_openw(param_1,DAT_001104b8)" (identifier "bfd_openw") (argument_list "(param_1,DAT_001104b8)" (( "(") (identifier "param_1") (, ",") (identifier "DAT_001104b8") () ")")))) (; ";")) (if_statement "if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }" (if "if") (parenthesized_expression "(((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0))" (( "(") (binary_expression "((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&\n         (iVar2 = bfd_close(lVar4), iVar2 != 0)" (parenthesized_expression "((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0))" (( "(") (binary_expression "(lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)" (parenthesized_expression "(lVar4 != 0)" (( "(") (binary_expression "lVar4 != 0" (identifier "lVar4") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)" (( "(") (comma_expression "iVar2 = bfd_set_format(lVar4,2), iVar2 != 0" (assignment_expression "iVar2 = bfd_set_format(lVar4,2)" (identifier "iVar2") (= "=") (call_expression "bfd_set_format(lVar4,2)" (identifier "bfd_set_format") (argument_list "(lVar4,2)" (( "(") (identifier "lVar4") (, ",") (number_literal "2") () ")")))) (, ",") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = bfd_close(lVar4), iVar2 != 0)" (( "(") (comma_expression "iVar2 = bfd_close(lVar4), iVar2 != 0" (assignment_expression "iVar2 = bfd_close(lVar4)" (identifier "iVar2") (= "=") (call_expression "bfd_close(lVar4)" (identifier "bfd_close") (argument_list "(lVar4)" (( "(") (identifier "lVar4") () ")")))) (, ",") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        pcVar8 = param_1;\n        if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }\n        goto LAB_001046db;\n      }" ({ "{") (expression_statement "pcVar8 = param_1;" (assignment_expression "pcVar8 = param_1" (identifier "pcVar8") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (DAT_0011049c == 0) {\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }" (if "if") (parenthesized_expression "(DAT_0011049c == 0)" (( "(") (binary_expression "DAT_0011049c == 0" (identifier "DAT_0011049c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar6 = dcgettext(0,"creating %s",5);\n          FUN_00107900(uVar6,param_1);\n          pcVar8 = param_1;\n        }" ({ "{") (expression_statement "uVar6 = dcgettext(0,"creating %s",5);" (assignment_expression "uVar6 = dcgettext(0,"creating %s",5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,"creating %s",5)" (identifier "dcgettext") (argument_list "(0,"creating %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""creating %s"" (" """) (string_content "creating %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00107900(uVar6,param_1);" (call_expression "FUN_00107900(uVar6,param_1)" (identifier "FUN_00107900") (argument_list "(uVar6,param_1)" (( "(") (identifier "uVar6") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "pcVar8 = param_1;" (assignment_expression "pcVar8 = param_1" (identifier "pcVar8") (= "=") (identifier "param_1")) (; ";")) (} "}"))) (goto_statement "goto LAB_001046db;" (goto "goto") (statement_identifier "LAB_001046db") (; ";")) (} "}"))) (} "}"))) (} "}")))) (expression_statement "FUN_001077e0(param_1);" (call_expression "FUN_001077e0(param_1)" (identifier "FUN_001077e0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (labeled_statement "LAB_001048ad:\n  FUN_001075b0(param_1);" (statement_identifier "LAB_001048ad") (: ":") (expression_statement "FUN_001075b0(param_1);" (call_expression "FUN_001075b0(param_1)" (identifier "FUN_001075b0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";"))) (expression_statement "iVar2 = bfd_get_error();" (assignment_expression "iVar2 = bfd_get_error()" (identifier "iVar2") (= "=") (call_expression "bfd_get_error()" (identifier "bfd_get_error") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar2 == 0xd) {\n    FUN_001079f0(local_b0);\n    free(local_b0);\n  }" (if "if") (parenthesized_expression "(iVar2 == 0xd)" (( "(") (binary_expression "iVar2 == 0xd" (identifier "iVar2") (== "==") (number_literal "0xd")) () ")")) (compound_statement "{\n    FUN_001079f0(local_b0);\n    free(local_b0);\n  }" ({ "{") (expression_statement "FUN_001079f0(local_b0);" (call_expression "FUN_001079f0(local_b0)" (identifier "FUN_001079f0") (argument_list "(local_b0)" (( "(") (identifier "local_b0") () ")"))) (; ";")) (expression_statement "free(local_b0);" (call_expression "free(local_b0)" (identifier "free") (argument_list "(local_b0)" (( "(") (identifier "local_b0") () ")"))) (; ";")) (} "}"))) (expression_statement "xexit(1);" (call_expression "xexit(1)" (identifier "xexit") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}")))

type_1 * function_1(char *archive_filename,char *var_10)

{
  type_1 *var_34;
  type_2 var_32;
  int var_4;
  int *piVar4;
  long var_12;
  type_1 *var_20;
  type_1 *pbVar7;
  type_1 *pbVar8;
  char *pcVar9;
  char *pcVar10;
  char **matching;
  type_3 sbuf;
  
  var_1(0);
  if (var_2 == (char *)0x0) {
    var_2 = "plugin";
  }
  var_4 = var_3(1,archive_filename,(type_3 *)&sbuf);
  pcVar9 = output_filename;
  if (var_4 != 0) {
    piVar4 = var_5();
    if (*piVar4 != 2) goto LAB_001048a5;
    if (var_6 == 0) {
      var_7(stderr,"%s: ",program_name);
      var_8(archive_filename);
      var_9();
      return (type_1 *)0x0;
    }
    if (((var_10 != (char *)0x0) && (var_2 == (char *)0x0)) && (var_12 = var_11(var_10), var_12 != 0))
    {
      var_4 = var_13(var_12,1);
      if (var_4 != 0) {
        var_2 = (char *)**(type_4 **)(var_12 + 8);
      }
      var_14(var_12);
    }
    var_12 = var_15(archive_filename,var_2);
    if (((var_12 == 0) || (var_4 = var_16(var_12,2), var_4 == 0)) ||
       (var_4 = var_14(var_12), var_4 == 0)) goto LAB_001048a5;
    pcVar9 = archive_filename;
    if (var_17 == 0) {
      pcVar9 = (char *)var_18(0,"creating %s",5);
      var_19(pcVar9,archive_filename);
      pcVar9 = archive_filename;
    }
  }
  output_filename = pcVar9;
  var_20 = (type_1 *)var_11(archive_filename,var_2);
  if (var_20 != (type_1 *)0x0) {
    var_4 = var_21(var_20,2,&matching);
    if (var_4 == 0) {
      var_22(archive_filename);
      var_4 = var_23();
      if (var_4 == 0xd) {
        var_24(matching);
        var_25(matching);
      }
                    /* WARNING: Subroutine does not return */
      var_26(1);
    }
    if (((var_27 == var_28) || (var_27 == var_29)) &&
       (var_12 = var_30(var_20,0), var_12 != 0)) {
      var_32 = var_20->field_0x48 & 1;
      if (var_31 == 0) {
        if (var_32 != 0) {
          pcVar9 = var_20->filename;
          pcVar10 = "Cannot convert existing thin library %s to normal format";
          goto LAB_00104818;
        }
      }
      else if (var_32 == 0) {
        pcVar9 = var_20->filename;
        pcVar10 = "Cannot convert existing library %s to thin format";
LAB_00104818:
        pcVar10 = (char *)var_18(0,pcVar10,5);
                    /* WARNING: Subroutine does not return */
        var_33(pcVar10,pcVar9);
      }
    }
    pbVar7 = (type_1 *)var_30(var_20,0);
    pbVar8 = var_20;
    while (var_34 = pbVar7, var_34 != (type_1 *)0x0) {
      pbVar8->archive_next = var_34;
      pbVar7 = (type_1 *)var_30(var_20,var_34);
      pbVar8 = var_34;
    }
    pbVar8->archive_next = (type_1 *)0x0;
    var_4 = var_23();
    if (var_4 == 9) {
      return var_20;
    }
  }
LAB_001048a5:
                    /* WARNING: Subroutine does not return */
  var_35(archive_filename);
}


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

undefined8 * MASKED(char *param_1,long param_2)

{
  long *plVar1;
  int iVar2;
  int *piVar3;
  long lVar4;
  undefined8 *puVar5;
  undefined8 uVar6;
  undefined8 uVar7;
  char *pcVar8;
  void *local_b0;
  stat local_a8;
  
  bfd_set_error(0);
  if (DAT_001104b8 == (char *)0x0) {
    DAT_001104b8 = "plugin";
  }
  iVar2 = __xstat(1,param_1,&local_a8);
  pcVar8 = DAT_001104b0;
  if (iVar2 == 0) {
LAB_001046db:
    DAT_001104b0 = pcVar8;
    puVar5 = (undefined8 *)bfd_openr(param_1,DAT_001104b8);
    if (puVar5 != (undefined8 *)0x0) {
      iVar2 = bfd_check_format_matches(puVar5,2,&local_b0);
      if (iVar2 == 0) goto LAB_001048ad;
      if (((DAT_00110478 == 2) || (DAT_00110478 == 7)) &&
         (lVar4 = bfd_openr_next_archived_file(puVar5,0), lVar4 != 0)) {
        if (DAT_001104c8 == 0) {
          if ((*(byte *)(puVar5 + 9) & 1) != 0) {
            uVar6 = *puVar5;
            pcVar8 = "Cannot convert existing thin library %s to normal format";
            goto LAB_00104818;
          }
        }
        else if ((*(byte *)(puVar5 + 9) & 1) == 0) {
          uVar6 = *puVar5;
          pcVar8 = "Cannot convert existing library %s to thin format";
LAB_00104818:
          uVar7 = dcgettext(0,pcVar8,5);
                    /* WARNING: Subroutine does not return */
          FUN_00107860(uVar7,uVar6);
        }
      }
      plVar1 = puVar5 + 0x1b;
      for (lVar4 = bfd_openr_next_archived_file(puVar5,0); lVar4 != 0;
          lVar4 = bfd_openr_next_archived_file(puVar5,lVar4)) {
        *plVar1 = lVar4;
        plVar1 = (long *)(lVar4 + 0xd8);
      }
      *plVar1 = 0;
      iVar2 = bfd_get_error();
      if (iVar2 == 9) {
        return puVar5;
      }
    }
  }
  else {
    piVar3 = __errno_location();
    if (*piVar3 == 2) {
      if (DAT_00110470 == 0) {
        fprintf(stderr,"%s: ",DAT_001106b0);
        perror(param_1);
        FUN_00106580();
        return (undefined8 *)0x0;
      }
      if (((param_2 != 0) && (DAT_001104b8 == (char *)0x0)) &&
         (lVar4 = bfd_openr(param_2), lVar4 != 0)) {
        iVar2 = bfd_check_format(lVar4,1);
        if (iVar2 != 0) {
          DAT_001104b8 = (char *)**(long **)(lVar4 + 8);
        }
        bfd_close(lVar4);
      }
      lVar4 = bfd_openw(param_1,DAT_001104b8);
      if (((lVar4 != 0) && (iVar2 = bfd_set_format(lVar4,2), iVar2 != 0)) &&
         (iVar2 = bfd_close(lVar4), iVar2 != 0)) {
        pcVar8 = param_1;
        if (DAT_0011049c == 0) {
          uVar6 = dcgettext(0,"creating %s",5);
          FUN_00107900(uVar6,param_1);
          pcVar8 = param_1;
        }
        goto LAB_001046db;
      }
    }
  }
  FUN_001077e0(param_1);
LAB_001048ad:
  FUN_001075b0(param_1);
  iVar2 = bfd_get_error();
  if (iVar2 == 0xd) {
    FUN_001079f0(local_b0);
    free(local_b0);
  }
                    /* WARNING: Subroutine does not return */
  xexit(1);
}

