
void print_contents(bfd *abfd)

{
  int iVar1;
  void *__ptr;
  size_t __n;
  int *piVar2;
  char *pcVar3;
  size_t sVar4;
  ulong uVar5;
  char *pcVar6;
  stat buf;
  
  __ptr = (void *)xmalloc(0x2000);
  iVar1 = (*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf);
  if (iVar1 != 0) {
    pcVar3 = abfd->filename;
    pcVar6 = "internal stat error on %s";
LAB_00103629:
    pcVar6 = (char *)dcgettext(0,pcVar6,5);
                    /* WARNING: Subroutine does not return */
    fatal(pcVar6,pcVar3);
  }
  if (verbose != 0) {
    printf("\n<%s>\n\n",abfd->filename);
  }
  bfd_seek(abfd,0,0);
  if (buf.st_size != 0) {
    uVar5 = 0;
    do {
      sVar4 = buf.st_size - uVar5;
      if (0x2000 < sVar4) {
        sVar4 = 0x2000;
      }
      __n = bfd_bread(__ptr,sVar4,abfd);
      if (__n != sVar4) {
        pcVar6 = "%s is not a valid archive";
        pcVar3 = abfd->my_archive->filename;
        goto LAB_00103629;
      }
      sVar4 = fwrite(__ptr,1,__n,stdout);
      if (sVar4 != __n) {
        piVar2 = __errno_location();
        pcVar3 = strerror(*piVar2);
                    /* WARNING: Subroutine does not return */
        fatal("stdout: %s",pcVar3);
      }
      uVar5 = uVar5 + sVar4;
    } while (uVar5 < (ulong)buf.st_size);
  }
  free(__ptr);
  return;
}



void FUN_00103510(undefined8 *param_1)

{
  int iVar1;
  void *__ptr;
  size_t __n;
  int *piVar2;
  char *pcVar3;
  undefined8 uVar4;
  size_t sVar5;
  undefined8 uVar6;
  ulong uVar7;
  undefined1 auStack_c8 [48];
  ulong local_98;
  
  __ptr = (void *)xmalloc(0x2000);
  iVar1 = (**(code **)(param_1[1] + 0x1e0))(param_1,auStack_c8);
  if (iVar1 != 0) {
    uVar6 = *param_1;
    pcVar3 = "internal stat error on %s";
LAB_00103629:
    uVar4 = dcgettext(0,pcVar3,5);
                    /* WARNING: Subroutine does not return */
    FUN_00107860(uVar4,uVar6);
  }
  if (DAT_00110498 != 0) {
    printf("\n<%s>\n\n",*param_1);
  }
  bfd_seek(param_1,0,0);
  if (local_98 != 0) {
    uVar7 = 0;
    do {
      sVar5 = local_98 - uVar7;
      if (0x2000 < sVar5) {
        sVar5 = 0x2000;
      }
      __n = bfd_bread(__ptr,sVar5,param_1);
      if (__n != sVar5) {
        pcVar3 = "%s is not a valid archive";
        uVar6 = *(undefined8 *)param_1[0x1a];
        goto LAB_00103629;
      }
      sVar5 = fwrite(__ptr,1,__n,stdout);
      if (sVar5 != __n) {
        piVar2 = __errno_location();
        pcVar3 = strerror(*piVar2);
                    /* WARNING: Subroutine does not return */
        FUN_00107860("stdout: %s",pcVar3);
      }
      uVar7 = uVar7 + sVar5;
    } while (uVar7 < local_98);
  }
  free(__ptr);
  return;
}


PUSH R15
PUSH R14
MOV R14,RDI
MOV EDI,0x2000
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x98
CALL 0x00102270
MOV RSI,RSP
MOV RDI,R14
MOV R12,RAX
MOV RAX,qword ptr [R14 + 0x8]
CALL qword ptr [RAX + 0x1e0]
TEST EAX,EAX
JNZ 0x0010363d
MOV EAX,dword ptr [0x00110498]
TEST EAX,EAX
JNZ 0x001035e0
XOR EDX,EDX
XOR ESI,ESI
MOV RDI,R14
CALL 0x001025f0
MOV R13,qword ptr [RSP + 0x30]
TEST R13,R13
JZ 0x001035c0
XOR EBP,EBP
NOP
MOV RBX,R13
MOV EAX,0x2000
MOV RDX,R14
MOV RDI,R12
SUB RBX,RBP
CMP RBX,0x2000
CMOVA RBX,RAX
MOV RSI,RBX
CALL 0x001025c0
MOV R15,RAX
CMP RAX,RBX
JNZ 0x00103613
MOV RCX,qword ptr [0x00110420]
MOV RDX,RAX
MOV ESI,0x1
MOV RDI,R12
CALL 0x00102590
CMP RAX,R15
JNZ 0x001035f6
ADD RBP,RAX
CMP R13,RBP
JA 0x00103570
ADD RSP,0x98
MOV RDI,R12
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP 0x00102060
MOV RSI,qword ptr [R14]
LEA RDI,[0x10a01e]
XOR EAX,EAX
CALL 0x001021f0
JMP 0x00103557
CALL 0x001020a0
MOV EDI,dword ptr [RAX]
CALL 0x001025d0
LEA RDI,[0x10a040]
MOV RSI,RAX
XOR EAX,EAX
CALL 0x00107860
MOV RAX,qword ptr [R14 + 0xd0]
MOV EDX,0x5
LEA RSI,[0x10a026]
MOV RBX,qword ptr [RAX]
XOR EDI,EDI
CALL 0x001021b0
MOV RSI,RBX
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00107860
MOV RBX,qword ptr [R14]
MOV EDX,0x5
LEA RSI,[0x10a004]
JMP 0x00103629
(translation_unit "void FUN_00103510(undefined8 *param_1)\n\n{\n  int iVar1;\n  void *__ptr;\n  size_t __n;\n  int *piVar2;\n  char *pcVar3;\n  undefined8 uVar4;\n  size_t sVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined1 auStack_c8 [48];\n  ulong local_98;\n  \n  __ptr = (void *)xmalloc(0x2000);\n  iVar1 = (**(code **)(param_1[1] + 0x1e0))(param_1,auStack_c8);\n  if (iVar1 != 0) {\n    uVar6 = *param_1;\n    pcVar3 = "internal stat error on %s";\nLAB_00103629:\n    uVar4 = dcgettext(0,pcVar3,5);\n                    /* WARNING: Subroutine does not return */\n    FUN_00107860(uVar4,uVar6);\n  }\n  if (DAT_00110498 != 0) {\n    printf("\n<%s>\n\n",*param_1);\n  }\n  bfd_seek(param_1,0,0);\n  if (local_98 != 0) {\n    uVar7 = 0;\n    do {\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    /* WARNING: Subroutine does not return */\n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    } while (uVar7 < local_98);\n  }\n  free(__ptr);\n  return;\n}\n\n" (function_definition "void FUN_00103510(undefined8 *param_1)\n\n{\n  int iVar1;\n  void *__ptr;\n  size_t __n;\n  int *piVar2;\n  char *pcVar3;\n  undefined8 uVar4;\n  size_t sVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined1 auStack_c8 [48];\n  ulong local_98;\n  \n  __ptr = (void *)xmalloc(0x2000);\n  iVar1 = (**(code **)(param_1[1] + 0x1e0))(param_1,auStack_c8);\n  if (iVar1 != 0) {\n    uVar6 = *param_1;\n    pcVar3 = "internal stat error on %s";\nLAB_00103629:\n    uVar4 = dcgettext(0,pcVar3,5);\n                    /* WARNING: Subroutine does not return */\n    FUN_00107860(uVar4,uVar6);\n  }\n  if (DAT_00110498 != 0) {\n    printf("\n<%s>\n\n",*param_1);\n  }\n  bfd_seek(param_1,0,0);\n  if (local_98 != 0) {\n    uVar7 = 0;\n    do {\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    /* WARNING: Subroutine does not return */\n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    } while (uVar7 < local_98);\n  }\n  free(__ptr);\n  return;\n}" primitive_type (function_declarator "FUN_00103510(undefined8 *param_1)" identifier (parameter_list "(undefined8 *param_1)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  void *__ptr;\n  size_t __n;\n  int *piVar2;\n  char *pcVar3;\n  undefined8 uVar4;\n  size_t sVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined1 auStack_c8 [48];\n  ulong local_98;\n  \n  __ptr = (void *)xmalloc(0x2000);\n  iVar1 = (**(code **)(param_1[1] + 0x1e0))(param_1,auStack_c8);\n  if (iVar1 != 0) {\n    uVar6 = *param_1;\n    pcVar3 = "internal stat error on %s";\nLAB_00103629:\n    uVar4 = dcgettext(0,pcVar3,5);\n                    /* WARNING: Subroutine does not return */\n    FUN_00107860(uVar4,uVar6);\n  }\n  if (DAT_00110498 != 0) {\n    printf("\n<%s>\n\n",*param_1);\n  }\n  bfd_seek(param_1,0,0);\n  if (local_98 != 0) {\n    uVar7 = 0;\n    do {\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    /* WARNING: Subroutine does not return */\n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    } while (uVar7 < local_98);\n  }\n  free(__ptr);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "undefined1 auStack_c8 [48];" type_identifier (array_declarator "auStack_c8 [48]" identifier [ number_literal ]) ;) (declaration "ulong local_98;" type_identifier identifier ;) (expression_statement "__ptr = (void *)xmalloc(0x2000);" (assignment_expression "__ptr = (void *)xmalloc(0x2000)" identifier = (cast_expression "(void *)xmalloc(0x2000)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x2000)" identifier (argument_list "(0x2000)" ( number_literal ))))) ;) (expression_statement "iVar1 = (**(code **)(param_1[1] + 0x1e0))(param_1,auStack_c8);" (assignment_expression "iVar1 = (**(code **)(param_1[1] + 0x1e0))(param_1,auStack_c8)" identifier = (call_expression "(**(code **)(param_1[1] + 0x1e0))(param_1,auStack_c8)" (parenthesized_expression "(**(code **)(param_1[1] + 0x1e0))" ( (pointer_expression "**(code **)(param_1[1] + 0x1e0)" * (pointer_expression "*(code **)(param_1[1] + 0x1e0)" * (cast_expression "(code **)(param_1[1] + 0x1e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x1e0)" ( (binary_expression "param_1[1] + 0x1e0" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,auStack_c8)" ( identifier , identifier )))) ;) (if_statement "if (iVar1 != 0) {\n    uVar6 = *param_1;\n    pcVar3 = "internal stat error on %s";\nLAB_00103629:\n    uVar4 = dcgettext(0,pcVar3,5);\n                    /* WARNING: Subroutine does not return */\n    FUN_00107860(uVar4,uVar6);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar6 = *param_1;\n    pcVar3 = "internal stat error on %s";\nLAB_00103629:\n    uVar4 = dcgettext(0,pcVar3,5);\n                    /* WARNING: Subroutine does not return */\n    FUN_00107860(uVar4,uVar6);\n  }" { (expression_statement "uVar6 = *param_1;" (assignment_expression "uVar6 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "pcVar3 = "internal stat error on %s";" (assignment_expression "pcVar3 = "internal stat error on %s"" identifier = (string_literal ""internal stat error on %s"" " string_content ")) ;) (labeled_statement "LAB_00103629:\n    uVar4 = dcgettext(0,pcVar3,5);" statement_identifier : (expression_statement "uVar4 = dcgettext(0,pcVar3,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar3,5)" identifier = (call_expression "dcgettext(0,pcVar3,5)" identifier (argument_list "(0,pcVar3,5)" ( number_literal , identifier , number_literal )))) ;)) comment (expression_statement "FUN_00107860(uVar4,uVar6);" (call_expression "FUN_00107860(uVar4,uVar6)" identifier (argument_list "(uVar4,uVar6)" ( identifier , identifier ))) ;) })) (if_statement "if (DAT_00110498 != 0) {\n    printf("\n<%s>\n\n",*param_1);\n  }" if (parenthesized_expression "(DAT_00110498 != 0)" ( (binary_expression "DAT_00110498 != 0" identifier != number_literal) )) (compound_statement "{\n    printf("\n<%s>\n\n",*param_1);\n  }" { (expression_statement "printf("\n<%s>\n\n",*param_1);" (call_expression "printf("\n<%s>\n\n",*param_1)" identifier (argument_list "("\n<%s>\n\n",*param_1)" ( (string_literal ""\n<%s>\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression "*param_1" * identifier) ))) ;) })) (expression_statement "bfd_seek(param_1,0,0);" (call_expression "bfd_seek(param_1,0,0)" identifier (argument_list "(param_1,0,0)" ( identifier , number_literal , number_literal ))) ;) (if_statement "if (local_98 != 0) {\n    uVar7 = 0;\n    do {\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    /* WARNING: Subroutine does not return */\n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    } while (uVar7 < local_98);\n  }" if (parenthesized_expression "(local_98 != 0)" ( (binary_expression "local_98 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar7 = 0;\n    do {\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    /* WARNING: Subroutine does not return */\n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    } while (uVar7 < local_98);\n  }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    /* WARNING: Subroutine does not return */\n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    } while (uVar7 < local_98);" do (compound_statement "{\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    /* WARNING: Subroutine does not return */\n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    }" { (expression_statement "sVar5 = local_98 - uVar7;" (assignment_expression "sVar5 = local_98 - uVar7" identifier = (binary_expression "local_98 - uVar7" identifier - identifier)) ;) (if_statement "if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }" if (parenthesized_expression "(0x2000 < sVar5)" ( (binary_expression "0x2000 < sVar5" number_literal < identifier) )) (compound_statement "{\n        sVar5 = 0x2000;\n      }" { (expression_statement "sVar5 = 0x2000;" (assignment_expression "sVar5 = 0x2000" identifier = number_literal) ;) })) (expression_statement "__n = bfd_bread(__ptr,sVar5,param_1);" (assignment_expression "__n = bfd_bread(__ptr,sVar5,param_1)" identifier = (call_expression "bfd_bread(__ptr,sVar5,param_1)" identifier (argument_list "(__ptr,sVar5,param_1)" ( identifier , identifier , identifier )))) ;) (if_statement "if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }" if (parenthesized_expression "(__n != sVar5)" ( (binary_expression "__n != sVar5" identifier != identifier) )) (compound_statement "{\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }" { (expression_statement "pcVar3 = "%s is not a valid archive";" (assignment_expression "pcVar3 = "%s is not a valid archive"" identifier = (string_literal ""%s is not a valid archive"" " string_content ")) ;) (expression_statement "uVar6 = *(undefined8 *)param_1[0x1a];" (assignment_expression "uVar6 = *(undefined8 *)param_1[0x1a]" identifier = (pointer_expression "*(undefined8 *)param_1[0x1a]" * (cast_expression "(undefined8 *)param_1[0x1a]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1a]" identifier [ number_literal ])))) ;) (goto_statement "goto LAB_00103629;" goto statement_identifier ;) })) (expression_statement "sVar5 = fwrite(__ptr,1,__n,stdout);" (assignment_expression "sVar5 = fwrite(__ptr,1,__n,stdout)" identifier = (call_expression "fwrite(__ptr,1,__n,stdout)" identifier (argument_list "(__ptr,1,__n,stdout)" ( identifier , number_literal , identifier , identifier )))) ;) (if_statement "if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    /* WARNING: Subroutine does not return */\n        FUN_00107860("stdout: %s",pcVar3);\n      }" if (parenthesized_expression "(sVar5 != __n)" ( (binary_expression "sVar5 != __n" identifier != identifier) )) (compound_statement "{\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    /* WARNING: Subroutine does not return */\n        FUN_00107860("stdout: %s",pcVar3);\n      }" { (expression_statement "piVar2 = __errno_location();" (assignment_expression "piVar2 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar3 = strerror(*piVar2);" (assignment_expression "pcVar3 = strerror(*piVar2)" identifier = (call_expression "strerror(*piVar2)" identifier (argument_list "(*piVar2)" ( (pointer_expression "*piVar2" * identifier) )))) ;) comment (expression_statement "FUN_00107860("stdout: %s",pcVar3);" (call_expression "FUN_00107860("stdout: %s",pcVar3)" identifier (argument_list "("stdout: %s",pcVar3)" ( (string_literal ""stdout: %s"" " string_content ") , identifier ))) ;) })) (expression_statement "uVar7 = uVar7 + sVar5;" (assignment_expression "uVar7 = uVar7 + sVar5" identifier = (binary_expression "uVar7 + sVar5" identifier + identifier)) ;) }) while (parenthesized_expression "(uVar7 < local_98)" ( (binary_expression "uVar7 < local_98" identifier < identifier) )) ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void print_contents(bfd *abfd)\n\n{\n  int iVar1;\n  void *__ptr;\n  size_t __n;\n  int *piVar2;\n  char *pcVar3;\n  size_t sVar4;\n  ulong uVar5;\n  char *pcVar6;\n  stat buf;\n  \n  __ptr = (void *)xmalloc(0x2000);\n  iVar1 = (*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf);\n  if (iVar1 != 0) {\n    pcVar3 = abfd->filename;\n    pcVar6 = "internal stat error on %s";\nLAB_00103629:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n                    /* WARNING: Subroutine does not return */\n    fatal(pcVar6,pcVar3);\n  }\n  if (verbose != 0) {\n    printf("\n<%s>\n\n",abfd->filename);\n  }\n  bfd_seek(abfd,0,0);\n  if (buf.st_size != 0) {\n    uVar5 = 0;\n    do {\n      sVar4 = buf.st_size - uVar5;\n      if (0x2000 < sVar4) {\n        sVar4 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar4,abfd);\n      if (__n != sVar4) {\n        pcVar6 = "%s is not a valid archive";\n        pcVar3 = abfd->my_archive->filename;\n        goto LAB_00103629;\n      }\n      sVar4 = fwrite(__ptr,1,__n,stdout);\n      if (sVar4 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    /* WARNING: Subroutine does not return */\n        fatal("stdout: %s",pcVar3);\n      }\n      uVar5 = uVar5 + sVar4;\n    } while (uVar5 < (ulong)buf.st_size);\n  }\n  free(__ptr);\n  return;\n}\n\n" (function_definition "void print_contents(bfd *abfd)\n\n{\n  int iVar1;\n  void *__ptr;\n  size_t __n;\n  int *piVar2;\n  char *pcVar3;\n  size_t sVar4;\n  ulong uVar5;\n  char *pcVar6;\n  stat buf;\n  \n  __ptr = (void *)xmalloc(0x2000);\n  iVar1 = (*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf);\n  if (iVar1 != 0) {\n    pcVar3 = abfd->filename;\n    pcVar6 = "internal stat error on %s";\nLAB_00103629:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n                    /* WARNING: Subroutine does not return */\n    fatal(pcVar6,pcVar3);\n  }\n  if (verbose != 0) {\n    printf("\n<%s>\n\n",abfd->filename);\n  }\n  bfd_seek(abfd,0,0);\n  if (buf.st_size != 0) {\n    uVar5 = 0;\n    do {\n      sVar4 = buf.st_size - uVar5;\n      if (0x2000 < sVar4) {\n        sVar4 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar4,abfd);\n      if (__n != sVar4) {\n        pcVar6 = "%s is not a valid archive";\n        pcVar3 = abfd->my_archive->filename;\n        goto LAB_00103629;\n      }\n      sVar4 = fwrite(__ptr,1,__n,stdout);\n      if (sVar4 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    /* WARNING: Subroutine does not return */\n        fatal("stdout: %s",pcVar3);\n      }\n      uVar5 = uVar5 + sVar4;\n    } while (uVar5 < (ulong)buf.st_size);\n  }\n  free(__ptr);\n  return;\n}" primitive_type (function_declarator "print_contents(bfd *abfd)" identifier (parameter_list "(bfd *abfd)" ( (parameter_declaration "bfd *abfd" type_identifier (pointer_declarator "*abfd" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  void *__ptr;\n  size_t __n;\n  int *piVar2;\n  char *pcVar3;\n  size_t sVar4;\n  ulong uVar5;\n  char *pcVar6;\n  stat buf;\n  \n  __ptr = (void *)xmalloc(0x2000);\n  iVar1 = (*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf);\n  if (iVar1 != 0) {\n    pcVar3 = abfd->filename;\n    pcVar6 = "internal stat error on %s";\nLAB_00103629:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n                    /* WARNING: Subroutine does not return */\n    fatal(pcVar6,pcVar3);\n  }\n  if (verbose != 0) {\n    printf("\n<%s>\n\n",abfd->filename);\n  }\n  bfd_seek(abfd,0,0);\n  if (buf.st_size != 0) {\n    uVar5 = 0;\n    do {\n      sVar4 = buf.st_size - uVar5;\n      if (0x2000 < sVar4) {\n        sVar4 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar4,abfd);\n      if (__n != sVar4) {\n        pcVar6 = "%s is not a valid archive";\n        pcVar3 = abfd->my_archive->filename;\n        goto LAB_00103629;\n      }\n      sVar4 = fwrite(__ptr,1,__n,stdout);\n      if (sVar4 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    /* WARNING: Subroutine does not return */\n        fatal("stdout: %s",pcVar3);\n      }\n      uVar5 = uVar5 + sVar4;\n    } while (uVar5 < (ulong)buf.st_size);\n  }\n  free(__ptr);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "stat buf;" type_identifier identifier ;) (expression_statement "__ptr = (void *)xmalloc(0x2000);" (assignment_expression "__ptr = (void *)xmalloc(0x2000)" identifier = (cast_expression "(void *)xmalloc(0x2000)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x2000)" identifier (argument_list "(0x2000)" ( number_literal ))))) ;) (expression_statement "iVar1 = (*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf);" (assignment_expression "iVar1 = (*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf)" identifier = (call_expression "(*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf)" (parenthesized_expression "(*abfd->xvec->_bfd_stat_arch_elt)" ( (pointer_expression "*abfd->xvec->_bfd_stat_arch_elt" * (field_expression "abfd->xvec->_bfd_stat_arch_elt" (field_expression "abfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(abfd,&buf)" ( identifier , (pointer_expression "&buf" & identifier) )))) ;) (if_statement "if (iVar1 != 0) {\n    pcVar3 = abfd->filename;\n    pcVar6 = "internal stat error on %s";\nLAB_00103629:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n                    /* WARNING: Subroutine does not return */\n    fatal(pcVar6,pcVar3);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    pcVar3 = abfd->filename;\n    pcVar6 = "internal stat error on %s";\nLAB_00103629:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);\n                    /* WARNING: Subroutine does not return */\n    fatal(pcVar6,pcVar3);\n  }" { (expression_statement "pcVar3 = abfd->filename;" (assignment_expression "pcVar3 = abfd->filename" identifier = (field_expression "abfd->filename" identifier -> field_identifier)) ;) (expression_statement "pcVar6 = "internal stat error on %s";" (assignment_expression "pcVar6 = "internal stat error on %s"" identifier = (string_literal ""internal stat error on %s"" " string_content ")) ;) (labeled_statement "LAB_00103629:\n    pcVar6 = (char *)dcgettext(0,pcVar6,5);" statement_identifier : (expression_statement "pcVar6 = (char *)dcgettext(0,pcVar6,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,pcVar6,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar6,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar6,5)" identifier (argument_list "(0,pcVar6,5)" ( number_literal , identifier , number_literal ))))) ;)) comment (expression_statement "fatal(pcVar6,pcVar3);" (call_expression "fatal(pcVar6,pcVar3)" identifier (argument_list "(pcVar6,pcVar3)" ( identifier , identifier ))) ;) })) (if_statement "if (verbose != 0) {\n    printf("\n<%s>\n\n",abfd->filename);\n  }" if (parenthesized_expression "(verbose != 0)" ( (binary_expression "verbose != 0" identifier != number_literal) )) (compound_statement "{\n    printf("\n<%s>\n\n",abfd->filename);\n  }" { (expression_statement "printf("\n<%s>\n\n",abfd->filename);" (call_expression "printf("\n<%s>\n\n",abfd->filename)" identifier (argument_list "("\n<%s>\n\n",abfd->filename)" ( (string_literal ""\n<%s>\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , (field_expression "abfd->filename" identifier -> field_identifier) ))) ;) })) (expression_statement "bfd_seek(abfd,0,0);" (call_expression "bfd_seek(abfd,0,0)" identifier (argument_list "(abfd,0,0)" ( identifier , number_literal , number_literal ))) ;) (if_statement "if (buf.st_size != 0) {\n    uVar5 = 0;\n    do {\n      sVar4 = buf.st_size - uVar5;\n      if (0x2000 < sVar4) {\n        sVar4 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar4,abfd);\n      if (__n != sVar4) {\n        pcVar6 = "%s is not a valid archive";\n        pcVar3 = abfd->my_archive->filename;\n        goto LAB_00103629;\n      }\n      sVar4 = fwrite(__ptr,1,__n,stdout);\n      if (sVar4 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    /* WARNING: Subroutine does not return */\n        fatal("stdout: %s",pcVar3);\n      }\n      uVar5 = uVar5 + sVar4;\n    } while (uVar5 < (ulong)buf.st_size);\n  }" if (parenthesized_expression "(buf.st_size != 0)" ( (binary_expression "buf.st_size != 0" (field_expression "buf.st_size" identifier . field_identifier) != number_literal) )) (compound_statement "{\n    uVar5 = 0;\n    do {\n      sVar4 = buf.st_size - uVar5;\n      if (0x2000 < sVar4) {\n        sVar4 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar4,abfd);\n      if (__n != sVar4) {\n        pcVar6 = "%s is not a valid archive";\n        pcVar3 = abfd->my_archive->filename;\n        goto LAB_00103629;\n      }\n      sVar4 = fwrite(__ptr,1,__n,stdout);\n      if (sVar4 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    /* WARNING: Subroutine does not return */\n        fatal("stdout: %s",pcVar3);\n      }\n      uVar5 = uVar5 + sVar4;\n    } while (uVar5 < (ulong)buf.st_size);\n  }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      sVar4 = buf.st_size - uVar5;\n      if (0x2000 < sVar4) {\n        sVar4 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar4,abfd);\n      if (__n != sVar4) {\n        pcVar6 = "%s is not a valid archive";\n        pcVar3 = abfd->my_archive->filename;\n        goto LAB_00103629;\n      }\n      sVar4 = fwrite(__ptr,1,__n,stdout);\n      if (sVar4 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    /* WARNING: Subroutine does not return */\n        fatal("stdout: %s",pcVar3);\n      }\n      uVar5 = uVar5 + sVar4;\n    } while (uVar5 < (ulong)buf.st_size);" do (compound_statement "{\n      sVar4 = buf.st_size - uVar5;\n      if (0x2000 < sVar4) {\n        sVar4 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar4,abfd);\n      if (__n != sVar4) {\n        pcVar6 = "%s is not a valid archive";\n        pcVar3 = abfd->my_archive->filename;\n        goto LAB_00103629;\n      }\n      sVar4 = fwrite(__ptr,1,__n,stdout);\n      if (sVar4 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    /* WARNING: Subroutine does not return */\n        fatal("stdout: %s",pcVar3);\n      }\n      uVar5 = uVar5 + sVar4;\n    }" { (expression_statement "sVar4 = buf.st_size - uVar5;" (assignment_expression "sVar4 = buf.st_size - uVar5" identifier = (binary_expression "buf.st_size - uVar5" (field_expression "buf.st_size" identifier . field_identifier) - identifier)) ;) (if_statement "if (0x2000 < sVar4) {\n        sVar4 = 0x2000;\n      }" if (parenthesized_expression "(0x2000 < sVar4)" ( (binary_expression "0x2000 < sVar4" number_literal < identifier) )) (compound_statement "{\n        sVar4 = 0x2000;\n      }" { (expression_statement "sVar4 = 0x2000;" (assignment_expression "sVar4 = 0x2000" identifier = number_literal) ;) })) (expression_statement "__n = bfd_bread(__ptr,sVar4,abfd);" (assignment_expression "__n = bfd_bread(__ptr,sVar4,abfd)" identifier = (call_expression "bfd_bread(__ptr,sVar4,abfd)" identifier (argument_list "(__ptr,sVar4,abfd)" ( identifier , identifier , identifier )))) ;) (if_statement "if (__n != sVar4) {\n        pcVar6 = "%s is not a valid archive";\n        pcVar3 = abfd->my_archive->filename;\n        goto LAB_00103629;\n      }" if (parenthesized_expression "(__n != sVar4)" ( (binary_expression "__n != sVar4" identifier != identifier) )) (compound_statement "{\n        pcVar6 = "%s is not a valid archive";\n        pcVar3 = abfd->my_archive->filename;\n        goto LAB_00103629;\n      }" { (expression_statement "pcVar6 = "%s is not a valid archive";" (assignment_expression "pcVar6 = "%s is not a valid archive"" identifier = (string_literal ""%s is not a valid archive"" " string_content ")) ;) (expression_statement "pcVar3 = abfd->my_archive->filename;" (assignment_expression "pcVar3 = abfd->my_archive->filename" identifier = (field_expression "abfd->my_archive->filename" (field_expression "abfd->my_archive" identifier -> field_identifier) -> field_identifier)) ;) (goto_statement "goto LAB_00103629;" goto statement_identifier ;) })) (expression_statement "sVar4 = fwrite(__ptr,1,__n,stdout);" (assignment_expression "sVar4 = fwrite(__ptr,1,__n,stdout)" identifier = (call_expression "fwrite(__ptr,1,__n,stdout)" identifier (argument_list "(__ptr,1,__n,stdout)" ( identifier , number_literal , identifier , identifier )))) ;) (if_statement "if (sVar4 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    /* WARNING: Subroutine does not return */\n        fatal("stdout: %s",pcVar3);\n      }" if (parenthesized_expression "(sVar4 != __n)" ( (binary_expression "sVar4 != __n" identifier != identifier) )) (compound_statement "{\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    /* WARNING: Subroutine does not return */\n        fatal("stdout: %s",pcVar3);\n      }" { (expression_statement "piVar2 = __errno_location();" (assignment_expression "piVar2 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar3 = strerror(*piVar2);" (assignment_expression "pcVar3 = strerror(*piVar2)" identifier = (call_expression "strerror(*piVar2)" identifier (argument_list "(*piVar2)" ( (pointer_expression "*piVar2" * identifier) )))) ;) comment (expression_statement "fatal("stdout: %s",pcVar3);" (call_expression "fatal("stdout: %s",pcVar3)" identifier (argument_list "("stdout: %s",pcVar3)" ( (string_literal ""stdout: %s"" " string_content ") , identifier ))) ;) })) (expression_statement "uVar5 = uVar5 + sVar4;" (assignment_expression "uVar5 = uVar5 + sVar4" identifier = (binary_expression "uVar5 + sVar4" identifier + identifier)) ;) }) while (parenthesized_expression "(uVar5 < (ulong)buf.st_size)" ( (binary_expression "uVar5 < (ulong)buf.st_size" identifier < (cast_expression "(ulong)buf.st_size" ( (type_descriptor "ulong" type_identifier) ) (field_expression "buf.st_size" identifier . field_identifier))) )) ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00103510(undefined8 *param_1)\n\n{\n  int iVar1;\n  void *__ptr;\n  size_t __n;\n  int *piVar2;\n  char *pcVar3;\n  undefined8 uVar4;\n  size_t sVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined1 auStack_c8 [48];\n  ulong local_98;\n  \n  __ptr = (void *)xmalloc(0x2000);\n  iVar1 = (**(code **)(param_1[1] + 0x1e0))(param_1,auStack_c8);\n  if (iVar1 != 0) {\n    uVar6 = *param_1;\n    pcVar3 = "internal stat error on %s";\nLAB_00103629:\n    uVar4 = dcgettext(0,pcVar3,5);\n                    \n    FUN_00107860(uVar4,uVar6);\n  }\n  if (DAT_00110498 != 0) {\n    printf("\n<%s>\n\n",*param_1);\n  }\n  bfd_seek(param_1,0,0);\n  if (local_98 != 0) {\n    uVar7 = 0;\n    do {\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    \n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    } while (uVar7 < local_98);\n  }\n  free(__ptr);\n  return;\n}\n\n" (function_definition "void FUN_00103510(undefined8 *param_1)\n\n{\n  int iVar1;\n  void *__ptr;\n  size_t __n;\n  int *piVar2;\n  char *pcVar3;\n  undefined8 uVar4;\n  size_t sVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined1 auStack_c8 [48];\n  ulong local_98;\n  \n  __ptr = (void *)xmalloc(0x2000);\n  iVar1 = (**(code **)(param_1[1] + 0x1e0))(param_1,auStack_c8);\n  if (iVar1 != 0) {\n    uVar6 = *param_1;\n    pcVar3 = "internal stat error on %s";\nLAB_00103629:\n    uVar4 = dcgettext(0,pcVar3,5);\n                    \n    FUN_00107860(uVar4,uVar6);\n  }\n  if (DAT_00110498 != 0) {\n    printf("\n<%s>\n\n",*param_1);\n  }\n  bfd_seek(param_1,0,0);\n  if (local_98 != 0) {\n    uVar7 = 0;\n    do {\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    \n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    } while (uVar7 < local_98);\n  }\n  free(__ptr);\n  return;\n}" primitive_type (function_declarator "FUN_00103510(undefined8 *param_1)" identifier (parameter_list "(undefined8 *param_1)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  void *__ptr;\n  size_t __n;\n  int *piVar2;\n  char *pcVar3;\n  undefined8 uVar4;\n  size_t sVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined1 auStack_c8 [48];\n  ulong local_98;\n  \n  __ptr = (void *)xmalloc(0x2000);\n  iVar1 = (**(code **)(param_1[1] + 0x1e0))(param_1,auStack_c8);\n  if (iVar1 != 0) {\n    uVar6 = *param_1;\n    pcVar3 = "internal stat error on %s";\nLAB_00103629:\n    uVar4 = dcgettext(0,pcVar3,5);\n                    \n    FUN_00107860(uVar4,uVar6);\n  }\n  if (DAT_00110498 != 0) {\n    printf("\n<%s>\n\n",*param_1);\n  }\n  bfd_seek(param_1,0,0);\n  if (local_98 != 0) {\n    uVar7 = 0;\n    do {\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    \n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    } while (uVar7 < local_98);\n  }\n  free(__ptr);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "undefined1 auStack_c8 [48];" type_identifier (array_declarator "auStack_c8 [48]" identifier [ number_literal ]) ;) (declaration "ulong local_98;" type_identifier identifier ;) (expression_statement "__ptr = (void *)xmalloc(0x2000);" (assignment_expression "__ptr = (void *)xmalloc(0x2000)" identifier = (cast_expression "(void *)xmalloc(0x2000)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x2000)" identifier (argument_list "(0x2000)" ( number_literal ))))) ;) (expression_statement "iVar1 = (**(code **)(param_1[1] + 0x1e0))(param_1,auStack_c8);" (assignment_expression "iVar1 = (**(code **)(param_1[1] + 0x1e0))(param_1,auStack_c8)" identifier = (call_expression "(**(code **)(param_1[1] + 0x1e0))(param_1,auStack_c8)" (parenthesized_expression "(**(code **)(param_1[1] + 0x1e0))" ( (pointer_expression "**(code **)(param_1[1] + 0x1e0)" * (pointer_expression "*(code **)(param_1[1] + 0x1e0)" * (cast_expression "(code **)(param_1[1] + 0x1e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x1e0)" ( (binary_expression "param_1[1] + 0x1e0" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,auStack_c8)" ( identifier , identifier )))) ;) (if_statement "if (iVar1 != 0) {\n    uVar6 = *param_1;\n    pcVar3 = "internal stat error on %s";\nLAB_00103629:\n    uVar4 = dcgettext(0,pcVar3,5);\n                    \n    FUN_00107860(uVar4,uVar6);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar6 = *param_1;\n    pcVar3 = "internal stat error on %s";\nLAB_00103629:\n    uVar4 = dcgettext(0,pcVar3,5);\n                    \n    FUN_00107860(uVar4,uVar6);\n  }" { (expression_statement "uVar6 = *param_1;" (assignment_expression "uVar6 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "pcVar3 = "internal stat error on %s";" (assignment_expression "pcVar3 = "internal stat error on %s"" identifier = (string_literal ""internal stat error on %s"" " string_content ")) ;) (labeled_statement "LAB_00103629:\n    uVar4 = dcgettext(0,pcVar3,5);" statement_identifier : (expression_statement "uVar4 = dcgettext(0,pcVar3,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar3,5)" identifier = (call_expression "dcgettext(0,pcVar3,5)" identifier (argument_list "(0,pcVar3,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_00107860(uVar4,uVar6);" (call_expression "FUN_00107860(uVar4,uVar6)" identifier (argument_list "(uVar4,uVar6)" ( identifier , identifier ))) ;) })) (if_statement "if (DAT_00110498 != 0) {\n    printf("\n<%s>\n\n",*param_1);\n  }" if (parenthesized_expression "(DAT_00110498 != 0)" ( (binary_expression "DAT_00110498 != 0" identifier != number_literal) )) (compound_statement "{\n    printf("\n<%s>\n\n",*param_1);\n  }" { (expression_statement "printf("\n<%s>\n\n",*param_1);" (call_expression "printf("\n<%s>\n\n",*param_1)" identifier (argument_list "("\n<%s>\n\n",*param_1)" ( (string_literal ""\n<%s>\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression "*param_1" * identifier) ))) ;) })) (expression_statement "bfd_seek(param_1,0,0);" (call_expression "bfd_seek(param_1,0,0)" identifier (argument_list "(param_1,0,0)" ( identifier , number_literal , number_literal ))) ;) (if_statement "if (local_98 != 0) {\n    uVar7 = 0;\n    do {\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    \n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    } while (uVar7 < local_98);\n  }" if (parenthesized_expression "(local_98 != 0)" ( (binary_expression "local_98 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar7 = 0;\n    do {\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    \n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    } while (uVar7 < local_98);\n  }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    \n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    } while (uVar7 < local_98);" do (compound_statement "{\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    \n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    }" { (expression_statement "sVar5 = local_98 - uVar7;" (assignment_expression "sVar5 = local_98 - uVar7" identifier = (binary_expression "local_98 - uVar7" identifier - identifier)) ;) (if_statement "if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }" if (parenthesized_expression "(0x2000 < sVar5)" ( (binary_expression "0x2000 < sVar5" number_literal < identifier) )) (compound_statement "{\n        sVar5 = 0x2000;\n      }" { (expression_statement "sVar5 = 0x2000;" (assignment_expression "sVar5 = 0x2000" identifier = number_literal) ;) })) (expression_statement "__n = bfd_bread(__ptr,sVar5,param_1);" (assignment_expression "__n = bfd_bread(__ptr,sVar5,param_1)" identifier = (call_expression "bfd_bread(__ptr,sVar5,param_1)" identifier (argument_list "(__ptr,sVar5,param_1)" ( identifier , identifier , identifier )))) ;) (if_statement "if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }" if (parenthesized_expression "(__n != sVar5)" ( (binary_expression "__n != sVar5" identifier != identifier) )) (compound_statement "{\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }" { (expression_statement "pcVar3 = "%s is not a valid archive";" (assignment_expression "pcVar3 = "%s is not a valid archive"" identifier = (string_literal ""%s is not a valid archive"" " string_content ")) ;) (expression_statement "uVar6 = *(undefined8 *)param_1[0x1a];" (assignment_expression "uVar6 = *(undefined8 *)param_1[0x1a]" identifier = (pointer_expression "*(undefined8 *)param_1[0x1a]" * (cast_expression "(undefined8 *)param_1[0x1a]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1a]" identifier [ number_literal ])))) ;) (goto_statement "goto LAB_00103629;" goto statement_identifier ;) })) (expression_statement "sVar5 = fwrite(__ptr,1,__n,stdout);" (assignment_expression "sVar5 = fwrite(__ptr,1,__n,stdout)" identifier = (call_expression "fwrite(__ptr,1,__n,stdout)" identifier (argument_list "(__ptr,1,__n,stdout)" ( identifier , number_literal , identifier , identifier )))) ;) (if_statement "if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    \n        FUN_00107860("stdout: %s",pcVar3);\n      }" if (parenthesized_expression "(sVar5 != __n)" ( (binary_expression "sVar5 != __n" identifier != identifier) )) (compound_statement "{\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    \n        FUN_00107860("stdout: %s",pcVar3);\n      }" { (expression_statement "piVar2 = __errno_location();" (assignment_expression "piVar2 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar3 = strerror(*piVar2);" (assignment_expression "pcVar3 = strerror(*piVar2)" identifier = (call_expression "strerror(*piVar2)" identifier (argument_list "(*piVar2)" ( (pointer_expression "*piVar2" * identifier) )))) ;) (expression_statement "FUN_00107860("stdout: %s",pcVar3);" (call_expression "FUN_00107860("stdout: %s",pcVar3)" identifier (argument_list "("stdout: %s",pcVar3)" ( (string_literal ""stdout: %s"" " string_content ") , identifier ))) ;) })) (expression_statement "uVar7 = uVar7 + sVar5;" (assignment_expression "uVar7 = uVar7 + sVar5" identifier = (binary_expression "uVar7 + sVar5" identifier + identifier)) ;) }) while (parenthesized_expression "(uVar7 < local_98)" ( (binary_expression "uVar7 < local_98" identifier < identifier) )) ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (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 ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content escape_sequence escape_sequence ") , (pointer_expression * IDENT) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00103510(undefined8 *param_1)\n\n{\n  int iVar1;\n  void *__ptr;\n  size_t __n;\n  int *piVar2;\n  char *pcVar3;\n  undefined8 uVar4;\n  size_t sVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined1 auStack_c8 [48];\n  ulong local_98;\n  \n  __ptr = (void *)xmalloc(0x2000);\n  iVar1 = (**(code **)(param_1[1] + 0x1e0))(param_1,auStack_c8);\n  if (iVar1 != 0) {\n    uVar6 = *param_1;\n    pcVar3 = "internal stat error on %s";\nLAB_00103629:\n    uVar4 = dcgettext(0,pcVar3,5);\n                    \n    FUN_00107860(uVar4,uVar6);\n  }\n  if (DAT_00110498 != 0) {\n    printf("\n<%s>\n\n",*param_1);\n  }\n  bfd_seek(param_1,0,0);\n  if (local_98 != 0) {\n    uVar7 = 0;\n    do {\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    \n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    } while (uVar7 < local_98);\n  }\n  free(__ptr);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00103510(undefined8 *param_1)" (identifier "FUN_00103510") (parameter_list "(undefined8 *param_1)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int iVar1;\n  void *__ptr;\n  size_t __n;\n  int *piVar2;\n  char *pcVar3;\n  undefined8 uVar4;\n  size_t sVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined1 auStack_c8 [48];\n  ulong local_98;\n  \n  __ptr = (void *)xmalloc(0x2000);\n  iVar1 = (**(code **)(param_1[1] + 0x1e0))(param_1,auStack_c8);\n  if (iVar1 != 0) {\n    uVar6 = *param_1;\n    pcVar3 = "internal stat error on %s";\nLAB_00103629:\n    uVar4 = dcgettext(0,pcVar3,5);\n                    \n    FUN_00107860(uVar4,uVar6);\n  }\n  if (DAT_00110498 != 0) {\n    printf("\n<%s>\n\n",*param_1);\n  }\n  bfd_seek(param_1,0,0);\n  if (local_98 != 0) {\n    uVar7 = 0;\n    do {\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    \n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    } while (uVar7 < local_98);\n  }\n  free(__ptr);\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "size_t sVar5;" (primitive_type "size_t") (identifier "sVar5") (; ";")) (declaration "undefined8 uVar6;" (type_identifier "undefined8") (identifier "uVar6") (; ";")) (declaration "ulong uVar7;" (type_identifier "ulong") (identifier "uVar7") (; ";")) (declaration "undefined1 auStack_c8 [48];" (type_identifier "undefined1") (array_declarator "auStack_c8 [48]" (identifier "auStack_c8") ([ "[") (number_literal "48") (] "]")) (; ";")) (declaration "ulong local_98;" (type_identifier "ulong") (identifier "local_98") (; ";")) (expression_statement "__ptr = (void *)xmalloc(0x2000);" (assignment_expression "__ptr = (void *)xmalloc(0x2000)" (identifier "__ptr") (= "=") (cast_expression "(void *)xmalloc(0x2000)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x2000)" (identifier "xmalloc") (argument_list "(0x2000)" (( "(") (number_literal "0x2000") () ")"))))) (; ";")) (expression_statement "iVar1 = (**(code **)(param_1[1] + 0x1e0))(param_1,auStack_c8);" (assignment_expression "iVar1 = (**(code **)(param_1[1] + 0x1e0))(param_1,auStack_c8)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(param_1[1] + 0x1e0))(param_1,auStack_c8)" (parenthesized_expression "(**(code **)(param_1[1] + 0x1e0))" (( "(") (pointer_expression "**(code **)(param_1[1] + 0x1e0)" (* "*") (pointer_expression "*(code **)(param_1[1] + 0x1e0)" (* "*") (cast_expression "(code **)(param_1[1] + 0x1e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1[1] + 0x1e0)" (( "(") (binary_expression "param_1[1] + 0x1e0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x1e0")) () ")"))))) () ")")) (argument_list "(param_1,auStack_c8)" (( "(") (identifier "param_1") (, ",") (identifier "auStack_c8") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n    uVar6 = *param_1;\n    pcVar3 = "internal stat error on %s";\nLAB_00103629:\n    uVar4 = dcgettext(0,pcVar3,5);\n                    \n    FUN_00107860(uVar4,uVar6);\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar6 = *param_1;\n    pcVar3 = "internal stat error on %s";\nLAB_00103629:\n    uVar4 = dcgettext(0,pcVar3,5);\n                    \n    FUN_00107860(uVar4,uVar6);\n  }" ({ "{") (expression_statement "uVar6 = *param_1;" (assignment_expression "uVar6 = *param_1" (identifier "uVar6") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "pcVar3 = "internal stat error on %s";" (assignment_expression "pcVar3 = "internal stat error on %s"" (identifier "pcVar3") (= "=") (string_literal ""internal stat error on %s"" (" """) (string_content "internal stat error on %s") (" """))) (; ";")) (labeled_statement "LAB_00103629:\n    uVar4 = dcgettext(0,pcVar3,5);" (statement_identifier "LAB_00103629") (: ":") (expression_statement "uVar4 = dcgettext(0,pcVar3,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar3,5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,pcVar3,5)" (identifier "dcgettext") (argument_list "(0,pcVar3,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar3") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_00107860(uVar4,uVar6);" (call_expression "FUN_00107860(uVar4,uVar6)" (identifier "FUN_00107860") (argument_list "(uVar4,uVar6)" (( "(") (identifier "uVar4") (, ",") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_00110498 != 0) {\n    printf("\n<%s>\n\n",*param_1);\n  }" (if "if") (parenthesized_expression "(DAT_00110498 != 0)" (( "(") (binary_expression "DAT_00110498 != 0" (identifier "DAT_00110498") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    printf("\n<%s>\n\n",*param_1);\n  }" ({ "{") (expression_statement "printf("\n<%s>\n\n",*param_1);" (call_expression "printf("\n<%s>\n\n",*param_1)" (identifier "printf") (argument_list "("\n<%s>\n\n",*param_1)" (( "(") (string_literal ""\n<%s>\n\n"" (" """) (escape_sequence "\n") (string_content "<%s>") (escape_sequence "\n") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")"))) (; ";")) (} "}"))) (expression_statement "bfd_seek(param_1,0,0);" (call_expression "bfd_seek(param_1,0,0)" (identifier "bfd_seek") (argument_list "(param_1,0,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (local_98 != 0) {\n    uVar7 = 0;\n    do {\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    \n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    } while (uVar7 < local_98);\n  }" (if "if") (parenthesized_expression "(local_98 != 0)" (( "(") (binary_expression "local_98 != 0" (identifier "local_98") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar7 = 0;\n    do {\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    \n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    } while (uVar7 < local_98);\n  }" ({ "{") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    \n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    } while (uVar7 < local_98);" (do "do") (compound_statement "{\n      sVar5 = local_98 - uVar7;\n      if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }\n      __n = bfd_bread(__ptr,sVar5,param_1);\n      if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }\n      sVar5 = fwrite(__ptr,1,__n,stdout);\n      if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    \n        FUN_00107860("stdout: %s",pcVar3);\n      }\n      uVar7 = uVar7 + sVar5;\n    }" ({ "{") (expression_statement "sVar5 = local_98 - uVar7;" (assignment_expression "sVar5 = local_98 - uVar7" (identifier "sVar5") (= "=") (binary_expression "local_98 - uVar7" (identifier "local_98") (- "-") (identifier "uVar7"))) (; ";")) (if_statement "if (0x2000 < sVar5) {\n        sVar5 = 0x2000;\n      }" (if "if") (parenthesized_expression "(0x2000 < sVar5)" (( "(") (binary_expression "0x2000 < sVar5" (number_literal "0x2000") (< "<") (identifier "sVar5")) () ")")) (compound_statement "{\n        sVar5 = 0x2000;\n      }" ({ "{") (expression_statement "sVar5 = 0x2000;" (assignment_expression "sVar5 = 0x2000" (identifier "sVar5") (= "=") (number_literal "0x2000")) (; ";")) (} "}"))) (expression_statement "__n = bfd_bread(__ptr,sVar5,param_1);" (assignment_expression "__n = bfd_bread(__ptr,sVar5,param_1)" (identifier "__n") (= "=") (call_expression "bfd_bread(__ptr,sVar5,param_1)" (identifier "bfd_bread") (argument_list "(__ptr,sVar5,param_1)" (( "(") (identifier "__ptr") (, ",") (identifier "sVar5") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (__n != sVar5) {\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }" (if "if") (parenthesized_expression "(__n != sVar5)" (( "(") (binary_expression "__n != sVar5" (identifier "__n") (!= "!=") (identifier "sVar5")) () ")")) (compound_statement "{\n        pcVar3 = "%s is not a valid archive";\n        uVar6 = *(undefined8 *)param_1[0x1a];\n        goto LAB_00103629;\n      }" ({ "{") (expression_statement "pcVar3 = "%s is not a valid archive";" (assignment_expression "pcVar3 = "%s is not a valid archive"" (identifier "pcVar3") (= "=") (string_literal ""%s is not a valid archive"" (" """) (string_content "%s is not a valid archive") (" """))) (; ";")) (expression_statement "uVar6 = *(undefined8 *)param_1[0x1a];" (assignment_expression "uVar6 = *(undefined8 *)param_1[0x1a]" (identifier "uVar6") (= "=") (pointer_expression "*(undefined8 *)param_1[0x1a]" (* "*") (cast_expression "(undefined8 *)param_1[0x1a]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x1a]" (identifier "param_1") ([ "[") (number_literal "0x1a") (] "]"))))) (; ";")) (goto_statement "goto LAB_00103629;" (goto "goto") (statement_identifier "LAB_00103629") (; ";")) (} "}"))) (expression_statement "sVar5 = fwrite(__ptr,1,__n,stdout);" (assignment_expression "sVar5 = fwrite(__ptr,1,__n,stdout)" (identifier "sVar5") (= "=") (call_expression "fwrite(__ptr,1,__n,stdout)" (identifier "fwrite") (argument_list "(__ptr,1,__n,stdout)" (( "(") (identifier "__ptr") (, ",") (number_literal "1") (, ",") (identifier "__n") (, ",") (identifier "stdout") () ")")))) (; ";")) (if_statement "if (sVar5 != __n) {\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    \n        FUN_00107860("stdout: %s",pcVar3);\n      }" (if "if") (parenthesized_expression "(sVar5 != __n)" (( "(") (binary_expression "sVar5 != __n" (identifier "sVar5") (!= "!=") (identifier "__n")) () ")")) (compound_statement "{\n        piVar2 = __errno_location();\n        pcVar3 = strerror(*piVar2);\n                    \n        FUN_00107860("stdout: %s",pcVar3);\n      }" ({ "{") (expression_statement "piVar2 = __errno_location();" (assignment_expression "piVar2 = __errno_location()" (identifier "piVar2") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar3 = strerror(*piVar2);" (assignment_expression "pcVar3 = strerror(*piVar2)" (identifier "pcVar3") (= "=") (call_expression "strerror(*piVar2)" (identifier "strerror") (argument_list "(*piVar2)" (( "(") (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) () ")")))) (; ";")) (expression_statement "FUN_00107860("stdout: %s",pcVar3);" (call_expression "FUN_00107860("stdout: %s",pcVar3)" (identifier "FUN_00107860") (argument_list "("stdout: %s",pcVar3)" (( "(") (string_literal ""stdout: %s"" (" """) (string_content "stdout: %s") (" """)) (, ",") (identifier "pcVar3") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar7 = uVar7 + sVar5;" (assignment_expression "uVar7 = uVar7 + sVar5" (identifier "uVar7") (= "=") (binary_expression "uVar7 + sVar5" (identifier "uVar7") (+ "+") (identifier "sVar5"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar7 < local_98)" (( "(") (binary_expression "uVar7 < local_98" (identifier "uVar7") (< "<") (identifier "local_98")) () ")")) (; ";")) (} "}"))) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *abfd)

{
  int var_2;
  void *__ptr;
  size_t var_11;
  int *piVar2;
  char *pcVar3;
  size_t var_9;
  type_2 var_8;
  char *pcVar6;
  type_3 buf;
  
  __ptr = (void *)var_1(0x2000);
  var_2 = (*abfd->xvec->_bfd_stat_arch_elt)(abfd,&buf);
  if (var_2 != 0) {
    pcVar3 = abfd->filename;
    pcVar6 = "internal stat error on %s";
LAB_00103629:
    pcVar6 = (char *)var_3(0,pcVar6,5);
                    /* WARNING: Subroutine does not return */
    var_4(pcVar6,pcVar3);
  }
  if (var_5 != 0) {
    var_6("\n<%s>\n\n",abfd->filename);
  }
  var_7(abfd,0,0);
  if (buf.st_size != 0) {
    var_8 = 0;
    do {
      var_9 = buf.st_size - var_8;
      if (0x2000 < var_9) {
        var_9 = 0x2000;
      }
      var_11 = var_10(__ptr,var_9,abfd);
      if (var_11 != var_9) {
        pcVar6 = "%s is not a valid archive";
        pcVar3 = abfd->my_archive->filename;
        goto LAB_00103629;
      }
      var_9 = var_12(__ptr,1,var_11,stdout);
      if (var_9 != var_11) {
        piVar2 = var_13();
        pcVar3 = var_14(*piVar2);
                    /* WARNING: Subroutine does not return */
        var_4("stdout: %s",pcVar3);
      }
      var_8 = var_8 + var_9;
    } while (var_8 < (type_2)buf.st_size);
  }
  var_15(__ptr);
  return;
}


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

void MASKED(undefined8 *param_1)

{
  int iVar1;
  void *__ptr;
  size_t __n;
  int *piVar2;
  char *pcVar3;
  undefined8 uVar4;
  size_t sVar5;
  undefined8 uVar6;
  ulong uVar7;
  undefined1 auStack_c8 [48];
  ulong local_98;
  
  __ptr = (void *)xmalloc(0x2000);
  iVar1 = (**(code **)(param_1[1] + 0x1e0))(param_1,auStack_c8);
  if (iVar1 != 0) {
    uVar6 = *param_1;
    pcVar3 = "internal stat error on %s";
LAB_00103629:
    uVar4 = dcgettext(0,pcVar3,5);
                    /* WARNING: Subroutine does not return */
    FUN_00107860(uVar4,uVar6);
  }
  if (DAT_00110498 != 0) {
    printf("\n<%s>\n\n",*param_1);
  }
  bfd_seek(param_1,0,0);
  if (local_98 != 0) {
    uVar7 = 0;
    do {
      sVar5 = local_98 - uVar7;
      if (0x2000 < sVar5) {
        sVar5 = 0x2000;
      }
      __n = bfd_bread(__ptr,sVar5,param_1);
      if (__n != sVar5) {
        pcVar3 = "%s is not a valid archive";
        uVar6 = *(undefined8 *)param_1[0x1a];
        goto LAB_00103629;
      }
      sVar5 = fwrite(__ptr,1,__n,stdout);
      if (sVar5 != __n) {
        piVar2 = __errno_location();
        pcVar3 = strerror(*piVar2);
                    /* WARNING: Subroutine does not return */
        FUN_00107860("stdout: %s",pcVar3);
      }
      uVar7 = uVar7 + sVar5;
    } while (uVar7 < local_98);
  }
  free(__ptr);
  return;
}

