
bfd_boolean
ar_emul_default_replace(bfd **after_bfd,char *file_name,char *target,bfd_boolean verbose)

{
  bfd *pbVar1;
  
  pbVar1 = (bfd *)bfd_openr(file_name,target);
  if (pbVar1 != (bfd *)0x0) {
    if (verbose != 0) {
      printf("r - %s\n",file_name);
    }
    pbVar1->archive_next = *after_bfd;
    *after_bfd = pbVar1;
    return 1;
  }
                    /* WARNING: Subroutine does not return */
  bfd_fatal(file_name);
}



undefined8 FUN_00107450(long *param_1,undefined8 param_2,undefined8 param_3,int param_4)

{
  long lVar1;
  undefined8 uVar2;
  
  lVar1 = bfd_openr(param_2,param_3);
  if (lVar1 != 0) {
    if (param_4 != 0) {
      printf("r - %s\n",param_2);
    }
    *(long *)(lVar1 + 0xd8) = *param_1;
    *param_1 = lVar1;
    return 1;
  }
  FUN_001077e0(param_2);
  if (PTR_FUN_001103f8 != (undefined *)0x0) {
                    /* WARNING: Could not recover jumptable at 0x001074cc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar2 = (*(code *)PTR_FUN_001103f8)();
    return uVar2;
  }
  return 0;
}


PUSH R13
MOV R13D,ECX
PUSH R12
MOV R12,RSI
MOV RSI,RDX
PUSH RBP
MOV RBP,RDI
MOV RDI,R12
PUSH RBX
SUB RSP,0x8
CALL 0x00102170
TEST RAX,RAX
JZ 0x001074b3
MOV RBX,RAX
TEST R13D,R13D
JNZ 0x001074a0
MOV RAX,qword ptr [RBP]
MOV qword ptr [RBX + 0xd8],RAX
MOV EAX,0x1
MOV qword ptr [RBP],RBX
ADD RSP,0x8
POP RBX
POP RBP
POP R12
POP R13
RET
MOV RSI,R12
LEA RDI,[0x10c263]
XOR EAX,EAX
CALL 0x001021f0
JMP 0x0010747b
MOV RDI,R12
CALL 0x001077e0
NOP dword ptr [RAX + RAX*0x1]
(translation_unit "undefined8 FUN_00107450(long *param_1,undefined8 param_2,undefined8 param_3,int param_4)\n\n{\n  long lVar1;\n  undefined8 uVar2;\n  \n  lVar1 = bfd_openr(param_2,param_3);\n  if (lVar1 != 0) {\n    if (param_4 != 0) {\n      printf("r - %s\n",param_2);\n    }\n    *(long *)(lVar1 + 0xd8) = *param_1;\n    *param_1 = lVar1;\n    return 1;\n  }\n  FUN_001077e0(param_2);\n  if (PTR_FUN_001103f8 != (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x001074cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (*(code *)PTR_FUN_001103f8)();\n    return uVar2;\n  }\n  return 0;\n}\n\n" (function_definition "undefined8 FUN_00107450(long *param_1,undefined8 param_2,undefined8 param_3,int param_4)\n\n{\n  long lVar1;\n  undefined8 uVar2;\n  \n  lVar1 = bfd_openr(param_2,param_3);\n  if (lVar1 != 0) {\n    if (param_4 != 0) {\n      printf("r - %s\n",param_2);\n    }\n    *(long *)(lVar1 + 0xd8) = *param_1;\n    *param_1 = lVar1;\n    return 1;\n  }\n  FUN_001077e0(param_2);\n  if (PTR_FUN_001103f8 != (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x001074cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (*(code *)PTR_FUN_001103f8)();\n    return uVar2;\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_00107450(long *param_1,undefined8 param_2,undefined8 param_3,int param_4)" identifier (parameter_list "(long *param_1,undefined8 param_2,undefined8 param_3,int param_4)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  long lVar1;\n  undefined8 uVar2;\n  \n  lVar1 = bfd_openr(param_2,param_3);\n  if (lVar1 != 0) {\n    if (param_4 != 0) {\n      printf("r - %s\n",param_2);\n    }\n    *(long *)(lVar1 + 0xd8) = *param_1;\n    *param_1 = lVar1;\n    return 1;\n  }\n  FUN_001077e0(param_2);\n  if (PTR_FUN_001103f8 != (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x001074cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (*(code *)PTR_FUN_001103f8)();\n    return uVar2;\n  }\n  return 0;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (expression_statement "lVar1 = bfd_openr(param_2,param_3);" (assignment_expression "lVar1 = bfd_openr(param_2,param_3)" identifier = (call_expression "bfd_openr(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (if_statement "if (lVar1 != 0) {\n    if (param_4 != 0) {\n      printf("r - %s\n",param_2);\n    }\n    *(long *)(lVar1 + 0xd8) = *param_1;\n    *param_1 = lVar1;\n    return 1;\n  }" if (parenthesized_expression "(lVar1 != 0)" ( (binary_expression "lVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (param_4 != 0) {\n      printf("r - %s\n",param_2);\n    }\n    *(long *)(lVar1 + 0xd8) = *param_1;\n    *param_1 = lVar1;\n    return 1;\n  }" { (if_statement "if (param_4 != 0) {\n      printf("r - %s\n",param_2);\n    }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n      printf("r - %s\n",param_2);\n    }" { (expression_statement "printf("r - %s\n",param_2);" (call_expression "printf("r - %s\n",param_2)" identifier (argument_list "("r - %s\n",param_2)" ( (string_literal ""r - %s\n"" " string_content escape_sequence ") , identifier ))) ;) })) (expression_statement "*(long *)(lVar1 + 0xd8) = *param_1;" (assignment_expression "*(long *)(lVar1 + 0xd8) = *param_1" (pointer_expression "*(long *)(lVar1 + 0xd8)" * (cast_expression "(long *)(lVar1 + 0xd8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0xd8)" ( (binary_expression "lVar1 + 0xd8" identifier + number_literal) )))) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*param_1 = lVar1;" (assignment_expression "*param_1 = lVar1" (pointer_expression "*param_1" * identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "FUN_001077e0(param_2);" (call_expression "FUN_001077e0(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (if_statement "if (PTR_FUN_001103f8 != (undefined *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x001074cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (*(code *)PTR_FUN_001103f8)();\n    return uVar2;\n  }" if (parenthesized_expression "(PTR_FUN_001103f8 != (undefined *)0x0)" ( (binary_expression "PTR_FUN_001103f8 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x001074cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (*(code *)PTR_FUN_001103f8)();\n    return uVar2;\n  }" { comment comment (expression_statement "uVar2 = (*(code *)PTR_FUN_001103f8)();" (assignment_expression "uVar2 = (*(code *)PTR_FUN_001103f8)()" identifier = (call_expression "(*(code *)PTR_FUN_001103f8)()" (parenthesized_expression "(*(code *)PTR_FUN_001103f8)" ( (pointer_expression "*(code *)PTR_FUN_001103f8" * (cast_expression "(code *)PTR_FUN_001103f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (return_statement "return uVar2;" return identifier ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "bfd_boolean\nar_emul_default_replace(bfd **after_bfd,char *file_name,char *target,bfd_boolean verbose)\n\n{\n  bfd *pbVar1;\n  \n  pbVar1 = (bfd *)bfd_openr(file_name,target);\n  if (pbVar1 != (bfd *)0x0) {\n    if (verbose != 0) {\n      printf("r - %s\n",file_name);\n    }\n    pbVar1->archive_next = *after_bfd;\n    *after_bfd = pbVar1;\n    return 1;\n  }\n                    /* WARNING: Subroutine does not return */\n  bfd_fatal(file_name);\n}\n\n" (function_definition "bfd_boolean\nar_emul_default_replace(bfd **after_bfd,char *file_name,char *target,bfd_boolean verbose)\n\n{\n  bfd *pbVar1;\n  \n  pbVar1 = (bfd *)bfd_openr(file_name,target);\n  if (pbVar1 != (bfd *)0x0) {\n    if (verbose != 0) {\n      printf("r - %s\n",file_name);\n    }\n    pbVar1->archive_next = *after_bfd;\n    *after_bfd = pbVar1;\n    return 1;\n  }\n                    /* WARNING: Subroutine does not return */\n  bfd_fatal(file_name);\n}" type_identifier (function_declarator "ar_emul_default_replace(bfd **after_bfd,char *file_name,char *target,bfd_boolean verbose)" identifier (parameter_list "(bfd **after_bfd,char *file_name,char *target,bfd_boolean verbose)" ( (parameter_declaration "bfd **after_bfd" type_identifier (pointer_declarator "**after_bfd" * (pointer_declarator "*after_bfd" * identifier))) , (parameter_declaration "char *file_name" primitive_type (pointer_declarator "*file_name" * identifier)) , (parameter_declaration "char *target" primitive_type (pointer_declarator "*target" * identifier)) , (parameter_declaration "bfd_boolean verbose" type_identifier identifier) ))) (compound_statement "{\n  bfd *pbVar1;\n  \n  pbVar1 = (bfd *)bfd_openr(file_name,target);\n  if (pbVar1 != (bfd *)0x0) {\n    if (verbose != 0) {\n      printf("r - %s\n",file_name);\n    }\n    pbVar1->archive_next = *after_bfd;\n    *after_bfd = pbVar1;\n    return 1;\n  }\n                    /* WARNING: Subroutine does not return */\n  bfd_fatal(file_name);\n}" { (declaration "bfd *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (expression_statement "pbVar1 = (bfd *)bfd_openr(file_name,target);" (assignment_expression "pbVar1 = (bfd *)bfd_openr(file_name,target)" identifier = (cast_expression "(bfd *)bfd_openr(file_name,target)" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_openr(file_name,target)" identifier (argument_list "(file_name,target)" ( identifier , identifier ))))) ;) (if_statement "if (pbVar1 != (bfd *)0x0) {\n    if (verbose != 0) {\n      printf("r - %s\n",file_name);\n    }\n    pbVar1->archive_next = *after_bfd;\n    *after_bfd = pbVar1;\n    return 1;\n  }" if (parenthesized_expression "(pbVar1 != (bfd *)0x0)" ( (binary_expression "pbVar1 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (verbose != 0) {\n      printf("r - %s\n",file_name);\n    }\n    pbVar1->archive_next = *after_bfd;\n    *after_bfd = pbVar1;\n    return 1;\n  }" { (if_statement "if (verbose != 0) {\n      printf("r - %s\n",file_name);\n    }" if (parenthesized_expression "(verbose != 0)" ( (binary_expression "verbose != 0" identifier != number_literal) )) (compound_statement "{\n      printf("r - %s\n",file_name);\n    }" { (expression_statement "printf("r - %s\n",file_name);" (call_expression "printf("r - %s\n",file_name)" identifier (argument_list "("r - %s\n",file_name)" ( (string_literal ""r - %s\n"" " string_content escape_sequence ") , identifier ))) ;) })) (expression_statement "pbVar1->archive_next = *after_bfd;" (assignment_expression "pbVar1->archive_next = *after_bfd" (field_expression "pbVar1->archive_next" identifier -> field_identifier) = (pointer_expression "*after_bfd" * identifier)) ;) (expression_statement "*after_bfd = pbVar1;" (assignment_expression "*after_bfd = pbVar1" (pointer_expression "*after_bfd" * identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) comment (expression_statement "bfd_fatal(file_name);" (call_expression "bfd_fatal(file_name)" identifier (argument_list "(file_name)" ( identifier ))) ;) })))
(translation_unit "undefined8 FUN_00107450(long *param_1,undefined8 param_2,undefined8 param_3,int param_4)\n\n{\n  long lVar1;\n  undefined8 uVar2;\n  \n  lVar1 = bfd_openr(param_2,param_3);\n  if (lVar1 != 0) {\n    if (param_4 != 0) {\n      printf("r - %s\n",param_2);\n    }\n    *(long *)(lVar1 + 0xd8) = *param_1;\n    *param_1 = lVar1;\n    return 1;\n  }\n  FUN_001077e0(param_2);\n  if (PTR_FUN_001103f8 != (undefined *)0x0) {\n                    \n                    \n    uVar2 = (*(code *)PTR_FUN_001103f8)();\n    return uVar2;\n  }\n  return 0;\n}\n\n" (function_definition "undefined8 FUN_00107450(long *param_1,undefined8 param_2,undefined8 param_3,int param_4)\n\n{\n  long lVar1;\n  undefined8 uVar2;\n  \n  lVar1 = bfd_openr(param_2,param_3);\n  if (lVar1 != 0) {\n    if (param_4 != 0) {\n      printf("r - %s\n",param_2);\n    }\n    *(long *)(lVar1 + 0xd8) = *param_1;\n    *param_1 = lVar1;\n    return 1;\n  }\n  FUN_001077e0(param_2);\n  if (PTR_FUN_001103f8 != (undefined *)0x0) {\n                    \n                    \n    uVar2 = (*(code *)PTR_FUN_001103f8)();\n    return uVar2;\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_00107450(long *param_1,undefined8 param_2,undefined8 param_3,int param_4)" identifier (parameter_list "(long *param_1,undefined8 param_2,undefined8 param_3,int param_4)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  long lVar1;\n  undefined8 uVar2;\n  \n  lVar1 = bfd_openr(param_2,param_3);\n  if (lVar1 != 0) {\n    if (param_4 != 0) {\n      printf("r - %s\n",param_2);\n    }\n    *(long *)(lVar1 + 0xd8) = *param_1;\n    *param_1 = lVar1;\n    return 1;\n  }\n  FUN_001077e0(param_2);\n  if (PTR_FUN_001103f8 != (undefined *)0x0) {\n                    \n                    \n    uVar2 = (*(code *)PTR_FUN_001103f8)();\n    return uVar2;\n  }\n  return 0;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (expression_statement "lVar1 = bfd_openr(param_2,param_3);" (assignment_expression "lVar1 = bfd_openr(param_2,param_3)" identifier = (call_expression "bfd_openr(param_2,param_3)" identifier (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (if_statement "if (lVar1 != 0) {\n    if (param_4 != 0) {\n      printf("r - %s\n",param_2);\n    }\n    *(long *)(lVar1 + 0xd8) = *param_1;\n    *param_1 = lVar1;\n    return 1;\n  }" if (parenthesized_expression "(lVar1 != 0)" ( (binary_expression "lVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (param_4 != 0) {\n      printf("r - %s\n",param_2);\n    }\n    *(long *)(lVar1 + 0xd8) = *param_1;\n    *param_1 = lVar1;\n    return 1;\n  }" { (if_statement "if (param_4 != 0) {\n      printf("r - %s\n",param_2);\n    }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n      printf("r - %s\n",param_2);\n    }" { (expression_statement "printf("r - %s\n",param_2);" (call_expression "printf("r - %s\n",param_2)" identifier (argument_list "("r - %s\n",param_2)" ( (string_literal ""r - %s\n"" " string_content escape_sequence ") , identifier ))) ;) })) (expression_statement "*(long *)(lVar1 + 0xd8) = *param_1;" (assignment_expression "*(long *)(lVar1 + 0xd8) = *param_1" (pointer_expression "*(long *)(lVar1 + 0xd8)" * (cast_expression "(long *)(lVar1 + 0xd8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0xd8)" ( (binary_expression "lVar1 + 0xd8" identifier + number_literal) )))) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*param_1 = lVar1;" (assignment_expression "*param_1 = lVar1" (pointer_expression "*param_1" * identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "FUN_001077e0(param_2);" (call_expression "FUN_001077e0(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) (if_statement "if (PTR_FUN_001103f8 != (undefined *)0x0) {\n                    \n                    \n    uVar2 = (*(code *)PTR_FUN_001103f8)();\n    return uVar2;\n  }" if (parenthesized_expression "(PTR_FUN_001103f8 != (undefined *)0x0)" ( (binary_expression "PTR_FUN_001103f8 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n                    \n    uVar2 = (*(code *)PTR_FUN_001103f8)();\n    return uVar2;\n  }" { (expression_statement "uVar2 = (*(code *)PTR_FUN_001103f8)();" (assignment_expression "uVar2 = (*(code *)PTR_FUN_001103f8)()" identifier = (call_expression "(*(code *)PTR_FUN_001103f8)()" (parenthesized_expression "(*(code *)PTR_FUN_001103f8)" ( (pointer_expression "*(code *)PTR_FUN_001103f8" * (cast_expression "(code *)PTR_FUN_001103f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (return_statement "return uVar2;" return identifier ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (return_statement return LIT ;) })))
(function_definition "undefined8 FUN_00107450(long *param_1,undefined8 param_2,undefined8 param_3,int param_4)\n\n{\n  long lVar1;\n  undefined8 uVar2;\n  \n  lVar1 = bfd_openr(param_2,param_3);\n  if (lVar1 != 0) {\n    if (param_4 != 0) {\n      printf("r - %s\n",param_2);\n    }\n    *(long *)(lVar1 + 0xd8) = *param_1;\n    *param_1 = lVar1;\n    return 1;\n  }\n  FUN_001077e0(param_2);\n  if (PTR_FUN_001103f8 != (undefined *)0x0) {\n                    \n                    \n    uVar2 = (*(code *)PTR_FUN_001103f8)();\n    return uVar2;\n  }\n  return 0;\n}" (type_identifier "undefined8") (function_declarator "FUN_00107450(long *param_1,undefined8 param_2,undefined8 param_3,int param_4)" (identifier "FUN_00107450") (parameter_list "(long *param_1,undefined8 param_2,undefined8 param_3,int param_4)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  long lVar1;\n  undefined8 uVar2;\n  \n  lVar1 = bfd_openr(param_2,param_3);\n  if (lVar1 != 0) {\n    if (param_4 != 0) {\n      printf("r - %s\n",param_2);\n    }\n    *(long *)(lVar1 + 0xd8) = *param_1;\n    *param_1 = lVar1;\n    return 1;\n  }\n  FUN_001077e0(param_2);\n  if (PTR_FUN_001103f8 != (undefined *)0x0) {\n                    \n                    \n    uVar2 = (*(code *)PTR_FUN_001103f8)();\n    return uVar2;\n  }\n  return 0;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (expression_statement "lVar1 = bfd_openr(param_2,param_3);" (assignment_expression "lVar1 = bfd_openr(param_2,param_3)" (identifier "lVar1") (= "=") (call_expression "bfd_openr(param_2,param_3)" (identifier "bfd_openr") (argument_list "(param_2,param_3)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (lVar1 != 0) {\n    if (param_4 != 0) {\n      printf("r - %s\n",param_2);\n    }\n    *(long *)(lVar1 + 0xd8) = *param_1;\n    *param_1 = lVar1;\n    return 1;\n  }" (if "if") (parenthesized_expression "(lVar1 != 0)" (( "(") (binary_expression "lVar1 != 0" (identifier "lVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (param_4 != 0) {\n      printf("r - %s\n",param_2);\n    }\n    *(long *)(lVar1 + 0xd8) = *param_1;\n    *param_1 = lVar1;\n    return 1;\n  }" ({ "{") (if_statement "if (param_4 != 0) {\n      printf("r - %s\n",param_2);\n    }" (if "if") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      printf("r - %s\n",param_2);\n    }" ({ "{") (expression_statement "printf("r - %s\n",param_2);" (call_expression "printf("r - %s\n",param_2)" (identifier "printf") (argument_list "("r - %s\n",param_2)" (( "(") (string_literal ""r - %s\n"" (" """) (string_content "r - %s") (escape_sequence "\n") (" """)) (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (expression_statement "*(long *)(lVar1 + 0xd8) = *param_1;" (assignment_expression "*(long *)(lVar1 + 0xd8) = *param_1" (pointer_expression "*(long *)(lVar1 + 0xd8)" (* "*") (cast_expression "(long *)(lVar1 + 0xd8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0xd8)" (( "(") (binary_expression "lVar1 + 0xd8" (identifier "lVar1") (+ "+") (number_literal "0xd8")) () ")")))) (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "*param_1 = lVar1;" (assignment_expression "*param_1 = lVar1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "lVar1")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "FUN_001077e0(param_2);" (call_expression "FUN_001077e0(param_2)" (identifier "FUN_001077e0") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (if_statement "if (PTR_FUN_001103f8 != (undefined *)0x0) {\n                    \n                    \n    uVar2 = (*(code *)PTR_FUN_001103f8)();\n    return uVar2;\n  }" (if "if") (parenthesized_expression "(PTR_FUN_001103f8 != (undefined *)0x0)" (( "(") (binary_expression "PTR_FUN_001103f8 != (undefined *)0x0" (identifier "PTR_FUN_001103f8") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n                    \n    uVar2 = (*(code *)PTR_FUN_001103f8)();\n    return uVar2;\n  }" ({ "{") (expression_statement "uVar2 = (*(code *)PTR_FUN_001103f8)();" (assignment_expression "uVar2 = (*(code *)PTR_FUN_001103f8)()" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_FUN_001103f8)()" (parenthesized_expression "(*(code *)PTR_FUN_001103f8)" (( "(") (pointer_expression "*(code *)PTR_FUN_001103f8" (* "*") (cast_expression "(code *)PTR_FUN_001103f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_001103f8"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

type_1
function_1(type_2 **after_bfd,char *file_name,char *target,type_1 var_3)

{
  type_2 *var_2;
  
  var_2 = (type_2 *)var_1(file_name,target);
  if (var_2 != (type_2 *)0x0) {
    if (var_3 != 0) {
      var_4("r - %s\n",file_name);
    }
    var_2->archive_next = *after_bfd;
    *after_bfd = var_2;
    return 1;
  }
                    /* WARNING: Subroutine does not return */
  var_5(file_name);
}


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

undefined8 MASKED(long *param_1,undefined8 param_2,undefined8 param_3,int param_4)

{
  long lVar1;
  undefined8 uVar2;
  
  lVar1 = bfd_openr(param_2,param_3);
  if (lVar1 != 0) {
    if (param_4 != 0) {
      printf("r - %s\n",param_2);
    }
    *(long *)(lVar1 + 0xd8) = *param_1;
    *param_1 = lVar1;
    return 1;
  }
  FUN_001077e0(param_2);
  if (PTR_FUN_001103f8 != (undefined *)0x0) {
                    /* WARNING: Could not recover jumptable at 0x001074cc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar2 = (*(code *)PTR_FUN_001103f8)();
    return uVar2;
  }
  return 0;
}

