
bfd_boolean
pecoff_checksum_contents(bfd *abfd,_func_void_void_ptr_size_t_void_ptr *process,void *arg)

{
  int iVar1;
  long lVar2;
  uchar b;
  
  lVar2 = 0;
  while( true ) {
    iVar1 = bfd_seek(abfd,lVar2,0);
    if (iVar1 != 0) {
      return 0;
    }
    iVar1 = bfd_bread(&b,1,abfd);
    if (iVar1 < 1) break;
    lVar2 = lVar2 + 1;
    (*process)(&b,1,arg);
  }
  return 1;
}



undefined8 FUN_001455d0(undefined8 param_1,code *param_2,undefined8 param_3)

{
  int iVar1;
  long lVar2;
  undefined1 local_29;
  
  lVar2 = 0;
  while( true ) {
    iVar1 = bfd_seek(param_1,lVar2,0);
    if (iVar1 != 0) {
      return 0;
    }
    iVar1 = bfd_bread(&local_29,1,param_1);
    if (iVar1 < 1) break;
    lVar2 = lVar2 + 1;
    (*param_2)(&local_29,1,param_3);
  }
  return 1;
}


PUSH R14
MOV R14,RSI
PUSH R13
MOV R13,RDX
PUSH R12
PUSH RBP
MOV RBP,RDI
PUSH RBX
XOR EBX,EBX
SUB RSP,0x10
LEA R12,[RSP + 0xf]
JMP 0x00145616
MOV RDX,RBP
MOV ESI,0x1
MOV RDI,R12
CALL 0x0010dc70
TEST EAX,EAX
JLE 0x00145640
MOV RDX,R13
MOV ESI,0x1
MOV RDI,R12
ADD RBX,0x1
CALL R14
XOR EDX,EDX
MOV RSI,RBX
MOV RDI,RBP
CALL 0x0010dd80
TEST EAX,EAX
JZ 0x001455f0
ADD RSP,0x10
XOR EAX,EAX
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
ADD RSP,0x10
MOV EAX,0x1
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
(translation_unit "undefined8 FUN_001455d0(undefined8 param_1,code *param_2,undefined8 param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  undefined1 local_29;\n  \n  lVar2 = 0;\n  while( true ) {\n    iVar1 = bfd_seek(param_1,lVar2,0);\n    if (iVar1 != 0) {\n      return 0;\n    }\n    iVar1 = bfd_bread(&local_29,1,param_1);\n    if (iVar1 < 1) break;\n    lVar2 = lVar2 + 1;\n    (*param_2)(&local_29,1,param_3);\n  }\n  return 1;\n}\n\n" (function_definition "undefined8 FUN_001455d0(undefined8 param_1,code *param_2,undefined8 param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  undefined1 local_29;\n  \n  lVar2 = 0;\n  while( true ) {\n    iVar1 = bfd_seek(param_1,lVar2,0);\n    if (iVar1 != 0) {\n      return 0;\n    }\n    iVar1 = bfd_bread(&local_29,1,param_1);\n    if (iVar1 < 1) break;\n    lVar2 = lVar2 + 1;\n    (*param_2)(&local_29,1,param_3);\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_001455d0(undefined8 param_1,code *param_2,undefined8 param_3)" identifier (parameter_list "(undefined8 param_1,code *param_2,undefined8 param_3)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "code *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  undefined1 local_29;\n  \n  lVar2 = 0;\n  while( true ) {\n    iVar1 = bfd_seek(param_1,lVar2,0);\n    if (iVar1 != 0) {\n      return 0;\n    }\n    iVar1 = bfd_bread(&local_29,1,param_1);\n    if (iVar1 < 1) break;\n    lVar2 = lVar2 + 1;\n    (*param_2)(&local_29,1,param_3);\n  }\n  return 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 local_29;" type_identifier identifier ;) (expression_statement "lVar2 = 0;" (assignment_expression "lVar2 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n    iVar1 = bfd_seek(param_1,lVar2,0);\n    if (iVar1 != 0) {\n      return 0;\n    }\n    iVar1 = bfd_bread(&local_29,1,param_1);\n    if (iVar1 < 1) break;\n    lVar2 = lVar2 + 1;\n    (*param_2)(&local_29,1,param_3);\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar1 = bfd_seek(param_1,lVar2,0);\n    if (iVar1 != 0) {\n      return 0;\n    }\n    iVar1 = bfd_bread(&local_29,1,param_1);\n    if (iVar1 < 1) break;\n    lVar2 = lVar2 + 1;\n    (*param_2)(&local_29,1,param_3);\n  }" { (expression_statement "iVar1 = bfd_seek(param_1,lVar2,0);" (assignment_expression "iVar1 = bfd_seek(param_1,lVar2,0)" identifier = (call_expression "bfd_seek(param_1,lVar2,0)" identifier (argument_list "(param_1,lVar2,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar1 = bfd_bread(&local_29,1,param_1);" (assignment_expression "iVar1 = bfd_bread(&local_29,1,param_1)" identifier = (call_expression "bfd_bread(&local_29,1,param_1)" identifier (argument_list "(&local_29,1,param_1)" ( (pointer_expression "&local_29" & identifier) , number_literal , identifier )))) ;) (if_statement "if (iVar1 < 1) break;" if (parenthesized_expression "(iVar1 < 1)" ( (binary_expression "iVar1 < 1" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar2 = lVar2 + 1;" (assignment_expression "lVar2 = lVar2 + 1" identifier = (binary_expression "lVar2 + 1" identifier + number_literal)) ;) (expression_statement "(*param_2)(&local_29,1,param_3);" (call_expression "(*param_2)(&local_29,1,param_3)" (parenthesized_expression "(*param_2)" ( (pointer_expression "*param_2" * identifier) )) (argument_list "(&local_29,1,param_3)" ( (pointer_expression "&local_29" & identifier) , number_literal , identifier ))) ;) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "bfd_boolean\npecoff_checksum_contents(bfd *abfd,_func_void_void_ptr_size_t_void_ptr *process,void *arg)\n\n{\n  int iVar1;\n  long lVar2;\n  uchar b;\n  \n  lVar2 = 0;\n  while( true ) {\n    iVar1 = bfd_seek(abfd,lVar2,0);\n    if (iVar1 != 0) {\n      return 0;\n    }\n    iVar1 = bfd_bread(&b,1,abfd);\n    if (iVar1 < 1) break;\n    lVar2 = lVar2 + 1;\n    (*process)(&b,1,arg);\n  }\n  return 1;\n}\n\n" (function_definition "bfd_boolean\npecoff_checksum_contents(bfd *abfd,_func_void_void_ptr_size_t_void_ptr *process,void *arg)\n\n{\n  int iVar1;\n  long lVar2;\n  uchar b;\n  \n  lVar2 = 0;\n  while( true ) {\n    iVar1 = bfd_seek(abfd,lVar2,0);\n    if (iVar1 != 0) {\n      return 0;\n    }\n    iVar1 = bfd_bread(&b,1,abfd);\n    if (iVar1 < 1) break;\n    lVar2 = lVar2 + 1;\n    (*process)(&b,1,arg);\n  }\n  return 1;\n}" type_identifier (function_declarator "pecoff_checksum_contents(bfd *abfd,_func_void_void_ptr_size_t_void_ptr *process,void *arg)" identifier (parameter_list "(bfd *abfd,_func_void_void_ptr_size_t_void_ptr *process,void *arg)" ( (parameter_declaration "bfd *abfd" type_identifier (pointer_declarator "*abfd" * identifier)) , (parameter_declaration "_func_void_void_ptr_size_t_void_ptr *process" type_identifier (pointer_declarator "*process" * identifier)) , (parameter_declaration "void *arg" primitive_type (pointer_declarator "*arg" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  uchar b;\n  \n  lVar2 = 0;\n  while( true ) {\n    iVar1 = bfd_seek(abfd,lVar2,0);\n    if (iVar1 != 0) {\n      return 0;\n    }\n    iVar1 = bfd_bread(&b,1,abfd);\n    if (iVar1 < 1) break;\n    lVar2 = lVar2 + 1;\n    (*process)(&b,1,arg);\n  }\n  return 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "uchar b;" type_identifier identifier ;) (expression_statement "lVar2 = 0;" (assignment_expression "lVar2 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n    iVar1 = bfd_seek(abfd,lVar2,0);\n    if (iVar1 != 0) {\n      return 0;\n    }\n    iVar1 = bfd_bread(&b,1,abfd);\n    if (iVar1 < 1) break;\n    lVar2 = lVar2 + 1;\n    (*process)(&b,1,arg);\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar1 = bfd_seek(abfd,lVar2,0);\n    if (iVar1 != 0) {\n      return 0;\n    }\n    iVar1 = bfd_bread(&b,1,abfd);\n    if (iVar1 < 1) break;\n    lVar2 = lVar2 + 1;\n    (*process)(&b,1,arg);\n  }" { (expression_statement "iVar1 = bfd_seek(abfd,lVar2,0);" (assignment_expression "iVar1 = bfd_seek(abfd,lVar2,0)" identifier = (call_expression "bfd_seek(abfd,lVar2,0)" identifier (argument_list "(abfd,lVar2,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar1 = bfd_bread(&b,1,abfd);" (assignment_expression "iVar1 = bfd_bread(&b,1,abfd)" identifier = (call_expression "bfd_bread(&b,1,abfd)" identifier (argument_list "(&b,1,abfd)" ( (pointer_expression "&b" & identifier) , number_literal , identifier )))) ;) (if_statement "if (iVar1 < 1) break;" if (parenthesized_expression "(iVar1 < 1)" ( (binary_expression "iVar1 < 1" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar2 = lVar2 + 1;" (assignment_expression "lVar2 = lVar2 + 1" identifier = (binary_expression "lVar2 + 1" identifier + number_literal)) ;) (expression_statement "(*process)(&b,1,arg);" (call_expression "(*process)(&b,1,arg)" (parenthesized_expression "(*process)" ( (pointer_expression "*process" * identifier) )) (argument_list "(&b,1,arg)" ( (pointer_expression "&b" & identifier) , number_literal , identifier ))) ;) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "undefined8 FUN_001455d0(undefined8 param_1,code *param_2,undefined8 param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  undefined1 local_29;\n  \n  lVar2 = 0;\n  while( true ) {\n    iVar1 = bfd_seek(param_1,lVar2,0);\n    if (iVar1 != 0) {\n      return 0;\n    }\n    iVar1 = bfd_bread(&local_29,1,param_1);\n    if (iVar1 < 1) break;\n    lVar2 = lVar2 + 1;\n    (*param_2)(&local_29,1,param_3);\n  }\n  return 1;\n}\n\n" (function_definition "undefined8 FUN_001455d0(undefined8 param_1,code *param_2,undefined8 param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  undefined1 local_29;\n  \n  lVar2 = 0;\n  while( true ) {\n    iVar1 = bfd_seek(param_1,lVar2,0);\n    if (iVar1 != 0) {\n      return 0;\n    }\n    iVar1 = bfd_bread(&local_29,1,param_1);\n    if (iVar1 < 1) break;\n    lVar2 = lVar2 + 1;\n    (*param_2)(&local_29,1,param_3);\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_001455d0(undefined8 param_1,code *param_2,undefined8 param_3)" identifier (parameter_list "(undefined8 param_1,code *param_2,undefined8 param_3)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "code *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 param_3" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  undefined1 local_29;\n  \n  lVar2 = 0;\n  while( true ) {\n    iVar1 = bfd_seek(param_1,lVar2,0);\n    if (iVar1 != 0) {\n      return 0;\n    }\n    iVar1 = bfd_bread(&local_29,1,param_1);\n    if (iVar1 < 1) break;\n    lVar2 = lVar2 + 1;\n    (*param_2)(&local_29,1,param_3);\n  }\n  return 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 local_29;" type_identifier identifier ;) (expression_statement "lVar2 = 0;" (assignment_expression "lVar2 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n    iVar1 = bfd_seek(param_1,lVar2,0);\n    if (iVar1 != 0) {\n      return 0;\n    }\n    iVar1 = bfd_bread(&local_29,1,param_1);\n    if (iVar1 < 1) break;\n    lVar2 = lVar2 + 1;\n    (*param_2)(&local_29,1,param_3);\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar1 = bfd_seek(param_1,lVar2,0);\n    if (iVar1 != 0) {\n      return 0;\n    }\n    iVar1 = bfd_bread(&local_29,1,param_1);\n    if (iVar1 < 1) break;\n    lVar2 = lVar2 + 1;\n    (*param_2)(&local_29,1,param_3);\n  }" { (expression_statement "iVar1 = bfd_seek(param_1,lVar2,0);" (assignment_expression "iVar1 = bfd_seek(param_1,lVar2,0)" identifier = (call_expression "bfd_seek(param_1,lVar2,0)" identifier (argument_list "(param_1,lVar2,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar1 = bfd_bread(&local_29,1,param_1);" (assignment_expression "iVar1 = bfd_bread(&local_29,1,param_1)" identifier = (call_expression "bfd_bread(&local_29,1,param_1)" identifier (argument_list "(&local_29,1,param_1)" ( (pointer_expression "&local_29" & identifier) , number_literal , identifier )))) ;) (if_statement "if (iVar1 < 1) break;" if (parenthesized_expression "(iVar1 < 1)" ( (binary_expression "iVar1 < 1" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar2 = lVar2 + 1;" (assignment_expression "lVar2 = lVar2 + 1" identifier = (binary_expression "lVar2 + 1" identifier + number_literal)) ;) (expression_statement "(*param_2)(&local_29,1,param_3);" (call_expression "(*param_2)(&local_29,1,param_3)" (parenthesized_expression "(*param_2)" ( (pointer_expression "*param_2" * identifier) )) (argument_list "(&local_29,1,param_3)" ( (pointer_expression "&local_29" & identifier) , number_literal , identifier ))) ;) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , LIT , IDENT ))) ;) })) (return_statement return LIT ;) })))
(function_definition "undefined8 FUN_001455d0(undefined8 param_1,code *param_2,undefined8 param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  undefined1 local_29;\n  \n  lVar2 = 0;\n  while( true ) {\n    iVar1 = bfd_seek(param_1,lVar2,0);\n    if (iVar1 != 0) {\n      return 0;\n    }\n    iVar1 = bfd_bread(&local_29,1,param_1);\n    if (iVar1 < 1) break;\n    lVar2 = lVar2 + 1;\n    (*param_2)(&local_29,1,param_3);\n  }\n  return 1;\n}" (type_identifier "undefined8") (function_declarator "FUN_001455d0(undefined8 param_1,code *param_2,undefined8 param_3)" (identifier "FUN_001455d0") (parameter_list "(undefined8 param_1,code *param_2,undefined8 param_3)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "code *param_2" (type_identifier "code") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) () ")"))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  undefined1 local_29;\n  \n  lVar2 = 0;\n  while( true ) {\n    iVar1 = bfd_seek(param_1,lVar2,0);\n    if (iVar1 != 0) {\n      return 0;\n    }\n    iVar1 = bfd_bread(&local_29,1,param_1);\n    if (iVar1 < 1) break;\n    lVar2 = lVar2 + 1;\n    (*param_2)(&local_29,1,param_3);\n  }\n  return 1;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "undefined1 local_29;" (type_identifier "undefined1") (identifier "local_29") (; ";")) (expression_statement "lVar2 = 0;" (assignment_expression "lVar2 = 0" (identifier "lVar2") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n    iVar1 = bfd_seek(param_1,lVar2,0);\n    if (iVar1 != 0) {\n      return 0;\n    }\n    iVar1 = bfd_bread(&local_29,1,param_1);\n    if (iVar1 < 1) break;\n    lVar2 = lVar2 + 1;\n    (*param_2)(&local_29,1,param_3);\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    iVar1 = bfd_seek(param_1,lVar2,0);\n    if (iVar1 != 0) {\n      return 0;\n    }\n    iVar1 = bfd_bread(&local_29,1,param_1);\n    if (iVar1 < 1) break;\n    lVar2 = lVar2 + 1;\n    (*param_2)(&local_29,1,param_3);\n  }" ({ "{") (expression_statement "iVar1 = bfd_seek(param_1,lVar2,0);" (assignment_expression "iVar1 = bfd_seek(param_1,lVar2,0)" (identifier "iVar1") (= "=") (call_expression "bfd_seek(param_1,lVar2,0)" (identifier "bfd_seek") (argument_list "(param_1,lVar2,0)" (( "(") (identifier "param_1") (, ",") (identifier "lVar2") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar1 = bfd_bread(&local_29,1,param_1);" (assignment_expression "iVar1 = bfd_bread(&local_29,1,param_1)" (identifier "iVar1") (= "=") (call_expression "bfd_bread(&local_29,1,param_1)" (identifier "bfd_bread") (argument_list "(&local_29,1,param_1)" (( "(") (pointer_expression "&local_29" (& "&") (identifier "local_29")) (, ",") (number_literal "1") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar1 < 1) break;" (if "if") (parenthesized_expression "(iVar1 < 1)" (( "(") (binary_expression "iVar1 < 1" (identifier "iVar1") (< "<") (number_literal "1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar2 = lVar2 + 1;" (assignment_expression "lVar2 = lVar2 + 1" (identifier "lVar2") (= "=") (binary_expression "lVar2 + 1" (identifier "lVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*param_2)(&local_29,1,param_3);" (call_expression "(*param_2)(&local_29,1,param_3)" (parenthesized_expression "(*param_2)" (( "(") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")")) (argument_list "(&local_29,1,param_3)" (( "(") (pointer_expression "&local_29" (& "&") (identifier "local_29")) (, ",") (number_literal "1") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

type_1
function_1(type_2 *abfd,type_3 *process,void *arg)

{
  int var_2;
  long var_4;
  type_4 b;
  
  var_4 = 0;
  while( true ) {
    var_2 = var_1(abfd,var_4,0);
    if (var_2 != 0) {
      return 0;
    }
    var_2 = var_3(&b,1,abfd);
    if (var_2 < 1) break;
    var_4 = var_4 + 1;
    (*process)(&b,1,arg);
  }
  return 1;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal) (identifier)))))) (return_statement (number_literal)))))

undefined8 MASKED(undefined8 param_1,code *param_2,undefined8 param_3)

{
  int iVar1;
  long lVar2;
  undefined1 local_29;
  
  lVar2 = 0;
  while( true ) {
    iVar1 = bfd_seek(param_1,lVar2,0);
    if (iVar1 != 0) {
      return 0;
    }
    iVar1 = bfd_bread(&local_29,1,param_1);
    if (iVar1 < 1) break;
    lVar2 = lVar2 + 1;
    (*param_2)(&local_29,1,param_3);
  }
  return 1;
}

