
bfd_boolean pr_lineno(void *p,char *filename,ulong lineno,bfd_vma addr)

{
  uint uVar1;
  pr_handle *info;
  char ab [22];
  
  if (*(int *)((long)p + 8) != 0) {
    uVar1 = 0;
    do {
                    /* WARNING: Load size is inaccurate */
      uVar1 = uVar1 + 1;
      putc(0x20,*p);
    } while (uVar1 < *(uint *)((long)p + 8));
  }
  sprintf(ab,"0x%lx",addr);
                    /* WARNING: Load size is inaccurate */
  fprintf(*p,"/* file %s line %lu addr %s */\n",filename,lineno,ab);
  return 1;
}



undefined8
FUN_00126680(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)

{
  uint uVar1;
  char acStack_48 [32];
  
  if (*(int *)(param_1 + 1) != 0) {
    uVar1 = 0;
    do {
      uVar1 = uVar1 + 1;
      putc(0x20,(FILE *)*param_1);
    } while (uVar1 < *(uint *)(param_1 + 1));
  }
  sprintf(acStack_48,"0x%lx",param_4);
  fprintf((FILE *)*param_1,"/* file %s line %lu addr %s */\n",param_2,param_3,acStack_48);
  return 1;
}


PUSH R14
MOV R14,RCX
PUSH R13
MOV R13,RDX
PUSH R12
MOV R12,RSI
PUSH RBP
MOV RBP,RDI
PUSH RBX
SUB RSP,0x20
MOV EAX,dword ptr [RDI + 0x8]
TEST EAX,EAX
JZ 0x001266be
XOR EBX,EBX
NOP dword ptr [RAX]
MOV RSI,qword ptr [RBP]
MOV EDI,0x20
ADD EBX,0x1
CALL 0x00107460
CMP EBX,dword ptr [RBP + 0x8]
JC 0x001266a8
MOV RBX,RSP
MOV RDX,R14
LEA RSI,[0x147893]
XOR EAX,EAX
MOV RDI,RBX
CALL 0x00107760
MOV RDI,qword ptr [RBP]
MOV R8,RBX
MOV RCX,R13
MOV RDX,R12
LEA RSI,[0x145ae8]
XOR EAX,EAX
CALL 0x00107850
ADD RSP,0x20
MOV EAX,0x1
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
(translation_unit "undefined8\nFUN_00126680(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  uint uVar1;\n  char acStack_48 [32];\n  \n  if (*(int *)(param_1 + 1) != 0) {\n    uVar1 = 0;\n    do {\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    } while (uVar1 < *(uint *)(param_1 + 1));\n  }\n  sprintf(acStack_48,"0x%lx",param_4);\n  fprintf((FILE *)*param_1,"/* file %s line %lu addr %s */\n",param_2,param_3,acStack_48);\n  return 1;\n}\n\n" (function_definition "undefined8\nFUN_00126680(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  uint uVar1;\n  char acStack_48 [32];\n  \n  if (*(int *)(param_1 + 1) != 0) {\n    uVar1 = 0;\n    do {\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    } while (uVar1 < *(uint *)(param_1 + 1));\n  }\n  sprintf(acStack_48,"0x%lx",param_4);\n  fprintf((FILE *)*param_1,"/* file %s line %lu addr %s */\n",param_2,param_3,acStack_48);\n  return 1;\n}" type_identifier (function_declarator "FUN_00126680(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)" identifier (parameter_list "(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  char acStack_48 [32];\n  \n  if (*(int *)(param_1 + 1) != 0) {\n    uVar1 = 0;\n    do {\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    } while (uVar1 < *(uint *)(param_1 + 1));\n  }\n  sprintf(acStack_48,"0x%lx",param_4);\n  fprintf((FILE *)*param_1,"/* file %s line %lu addr %s */\n",param_2,param_3,acStack_48);\n  return 1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "char acStack_48 [32];" primitive_type (array_declarator "acStack_48 [32]" identifier [ number_literal ]) ;) (if_statement "if (*(int *)(param_1 + 1) != 0) {\n    uVar1 = 0;\n    do {\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    } while (uVar1 < *(uint *)(param_1 + 1));\n  }" if (parenthesized_expression "(*(int *)(param_1 + 1) != 0)" ( (binary_expression "*(int *)(param_1 + 1) != 0" (pointer_expression "*(int *)(param_1 + 1)" * (cast_expression "(int *)(param_1 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    uVar1 = 0;\n    do {\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    } while (uVar1 < *(uint *)(param_1 + 1));\n  }" { (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    } while (uVar1 < *(uint *)(param_1 + 1));" do (compound_statement "{\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    }" { (expression_statement "uVar1 = uVar1 + 1;" (assignment_expression "uVar1 = uVar1 + 1" identifier = (binary_expression "uVar1 + 1" identifier + number_literal)) ;) (expression_statement "putc(0x20,(FILE *)*param_1);" (call_expression "putc(0x20,(FILE *)*param_1)" identifier (argument_list "(0x20,(FILE *)*param_1)" ( number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) }) while (parenthesized_expression "(uVar1 < *(uint *)(param_1 + 1))" ( (binary_expression "uVar1 < *(uint *)(param_1 + 1)" identifier < (pointer_expression "*(uint *)(param_1 + 1)" * (cast_expression "(uint *)(param_1 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) ))))) )) ;) })) (expression_statement "sprintf(acStack_48,"0x%lx",param_4);" (call_expression "sprintf(acStack_48,"0x%lx",param_4)" identifier (argument_list "(acStack_48,"0x%lx",param_4)" ( identifier , (string_literal ""0x%lx"" " string_content ") , identifier ))) ;) (expression_statement "fprintf((FILE *)*param_1,"/* file %s line %lu addr %s */\n",param_2,param_3,acStack_48);" (call_expression "fprintf((FILE *)*param_1,"/* file %s line %lu addr %s */\n",param_2,param_3,acStack_48)" identifier (argument_list "((FILE *)*param_1,"/* file %s line %lu addr %s */\n",param_2,param_3,acStack_48)" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal ""/* file %s line %lu addr %s */\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "bfd_boolean pr_lineno(void *p,char *filename,ulong lineno,bfd_vma addr)\n\n{\n  uint uVar1;\n  pr_handle *info;\n  char ab [22];\n  \n  if (*(int *)((long)p + 8) != 0) {\n    uVar1 = 0;\n    do {\n                    /* WARNING: Load size is inaccurate */\n      uVar1 = uVar1 + 1;\n      putc(0x20,*p);\n    } while (uVar1 < *(uint *)((long)p + 8));\n  }\n  sprintf(ab,"0x%lx",addr);\n                    /* WARNING: Load size is inaccurate */\n  fprintf(*p,"/* file %s line %lu addr %s */\n",filename,lineno,ab);\n  return 1;\n}\n\n" (function_definition "bfd_boolean pr_lineno(void *p,char *filename,ulong lineno,bfd_vma addr)\n\n{\n  uint uVar1;\n  pr_handle *info;\n  char ab [22];\n  \n  if (*(int *)((long)p + 8) != 0) {\n    uVar1 = 0;\n    do {\n                    /* WARNING: Load size is inaccurate */\n      uVar1 = uVar1 + 1;\n      putc(0x20,*p);\n    } while (uVar1 < *(uint *)((long)p + 8));\n  }\n  sprintf(ab,"0x%lx",addr);\n                    /* WARNING: Load size is inaccurate */\n  fprintf(*p,"/* file %s line %lu addr %s */\n",filename,lineno,ab);\n  return 1;\n}" type_identifier (function_declarator "pr_lineno(void *p,char *filename,ulong lineno,bfd_vma addr)" identifier (parameter_list "(void *p,char *filename,ulong lineno,bfd_vma addr)" ( (parameter_declaration "void *p" primitive_type (pointer_declarator "*p" * identifier)) , (parameter_declaration "char *filename" primitive_type (pointer_declarator "*filename" * identifier)) , (parameter_declaration "ulong lineno" type_identifier identifier) , (parameter_declaration "bfd_vma addr" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  pr_handle *info;\n  char ab [22];\n  \n  if (*(int *)((long)p + 8) != 0) {\n    uVar1 = 0;\n    do {\n                    /* WARNING: Load size is inaccurate */\n      uVar1 = uVar1 + 1;\n      putc(0x20,*p);\n    } while (uVar1 < *(uint *)((long)p + 8));\n  }\n  sprintf(ab,"0x%lx",addr);\n                    /* WARNING: Load size is inaccurate */\n  fprintf(*p,"/* file %s line %lu addr %s */\n",filename,lineno,ab);\n  return 1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "pr_handle *info;" type_identifier (pointer_declarator "*info" * identifier) ;) (declaration "char ab [22];" primitive_type (array_declarator "ab [22]" identifier [ number_literal ]) ;) (if_statement "if (*(int *)((long)p + 8) != 0) {\n    uVar1 = 0;\n    do {\n                    /* WARNING: Load size is inaccurate */\n      uVar1 = uVar1 + 1;\n      putc(0x20,*p);\n    } while (uVar1 < *(uint *)((long)p + 8));\n  }" if (parenthesized_expression "(*(int *)((long)p + 8) != 0)" ( (binary_expression "*(int *)((long)p + 8) != 0" (pointer_expression "*(int *)((long)p + 8)" * (cast_expression "(int *)((long)p + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 8)" ( (binary_expression "(long)p + 8" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n    uVar1 = 0;\n    do {\n                    /* WARNING: Load size is inaccurate */\n      uVar1 = uVar1 + 1;\n      putc(0x20,*p);\n    } while (uVar1 < *(uint *)((long)p + 8));\n  }" { (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) (do_statement "do {\n                    /* WARNING: Load size is inaccurate */\n      uVar1 = uVar1 + 1;\n      putc(0x20,*p);\n    } while (uVar1 < *(uint *)((long)p + 8));" do (compound_statement "{\n                    /* WARNING: Load size is inaccurate */\n      uVar1 = uVar1 + 1;\n      putc(0x20,*p);\n    }" { comment (expression_statement "uVar1 = uVar1 + 1;" (assignment_expression "uVar1 = uVar1 + 1" identifier = (binary_expression "uVar1 + 1" identifier + number_literal)) ;) (expression_statement "putc(0x20,*p);" (call_expression "putc(0x20,*p)" identifier (argument_list "(0x20,*p)" ( number_literal , (pointer_expression "*p" * identifier) ))) ;) }) while (parenthesized_expression "(uVar1 < *(uint *)((long)p + 8))" ( (binary_expression "uVar1 < *(uint *)((long)p + 8)" identifier < (pointer_expression "*(uint *)((long)p + 8)" * (cast_expression "(uint *)((long)p + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 8)" ( (binary_expression "(long)p + 8" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) )) ;) })) (expression_statement "sprintf(ab,"0x%lx",addr);" (call_expression "sprintf(ab,"0x%lx",addr)" identifier (argument_list "(ab,"0x%lx",addr)" ( identifier , (string_literal ""0x%lx"" " string_content ") , identifier ))) ;) comment (expression_statement "fprintf(*p,"/* file %s line %lu addr %s */\n",filename,lineno,ab);" (call_expression "fprintf(*p,"/* file %s line %lu addr %s */\n",filename,lineno,ab)" identifier (argument_list "(*p,"/* file %s line %lu addr %s */\n",filename,lineno,ab)" ( (pointer_expression "*p" * identifier) , (string_literal ""/* file %s line %lu addr %s */\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "undefined8\nFUN_00126680(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  uint uVar1;\n  char acStack_48 [32];\n  \n  if (*(int *)(param_1 + 1) != 0) {\n    uVar1 = 0;\n    do {\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    } while (uVar1 < *(uint *)(param_1 + 1));\n  }\n  sprintf(acStack_48,"0x%lx",param_4);\n  fprintf((FILE *)*param_1,"\n",param_2,param_3,acStack_48);\n  return 1;\n}\n\n" (function_definition "undefined8\nFUN_00126680(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  uint uVar1;\n  char acStack_48 [32];\n  \n  if (*(int *)(param_1 + 1) != 0) {\n    uVar1 = 0;\n    do {\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    } while (uVar1 < *(uint *)(param_1 + 1));\n  }\n  sprintf(acStack_48,"0x%lx",param_4);\n  fprintf((FILE *)*param_1,"\n",param_2,param_3,acStack_48);\n  return 1;\n}" type_identifier (function_declarator "FUN_00126680(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)" identifier (parameter_list "(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  char acStack_48 [32];\n  \n  if (*(int *)(param_1 + 1) != 0) {\n    uVar1 = 0;\n    do {\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    } while (uVar1 < *(uint *)(param_1 + 1));\n  }\n  sprintf(acStack_48,"0x%lx",param_4);\n  fprintf((FILE *)*param_1,"\n",param_2,param_3,acStack_48);\n  return 1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "char acStack_48 [32];" primitive_type (array_declarator "acStack_48 [32]" identifier [ number_literal ]) ;) (if_statement "if (*(int *)(param_1 + 1) != 0) {\n    uVar1 = 0;\n    do {\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    } while (uVar1 < *(uint *)(param_1 + 1));\n  }" if (parenthesized_expression "(*(int *)(param_1 + 1) != 0)" ( (binary_expression "*(int *)(param_1 + 1) != 0" (pointer_expression "*(int *)(param_1 + 1)" * (cast_expression "(int *)(param_1 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    uVar1 = 0;\n    do {\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    } while (uVar1 < *(uint *)(param_1 + 1));\n  }" { (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    } while (uVar1 < *(uint *)(param_1 + 1));" do (compound_statement "{\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    }" { (expression_statement "uVar1 = uVar1 + 1;" (assignment_expression "uVar1 = uVar1 + 1" identifier = (binary_expression "uVar1 + 1" identifier + number_literal)) ;) (expression_statement "putc(0x20,(FILE *)*param_1);" (call_expression "putc(0x20,(FILE *)*param_1)" identifier (argument_list "(0x20,(FILE *)*param_1)" ( number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) }) while (parenthesized_expression "(uVar1 < *(uint *)(param_1 + 1))" ( (binary_expression "uVar1 < *(uint *)(param_1 + 1)" identifier < (pointer_expression "*(uint *)(param_1 + 1)" * (cast_expression "(uint *)(param_1 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) ))))) )) ;) })) (expression_statement "sprintf(acStack_48,"0x%lx",param_4);" (call_expression "sprintf(acStack_48,"0x%lx",param_4)" identifier (argument_list "(acStack_48,"0x%lx",param_4)" ( identifier , (string_literal ""0x%lx"" " string_content ") , identifier ))) ;) (expression_statement "fprintf((FILE *)*param_1,"\n",param_2,param_3,acStack_48);" (call_expression "fprintf((FILE *)*param_1,"\n",param_2,param_3,acStack_48)" identifier (argument_list "((FILE *)*param_1,"\n",param_2,param_3,acStack_48)" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal ""\n"" " escape_sequence ") , identifier , identifier , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , (string_literal " escape_sequence ") , IDENT , IDENT , IDENT ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined8\nFUN_00126680(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)\n\n{\n  uint uVar1;\n  char acStack_48 [32];\n  \n  if (*(int *)(param_1 + 1) != 0) {\n    uVar1 = 0;\n    do {\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    } while (uVar1 < *(uint *)(param_1 + 1));\n  }\n  sprintf(acStack_48,"0x%lx",param_4);\n  fprintf((FILE *)*param_1,"\n",param_2,param_3,acStack_48);\n  return 1;\n}" (type_identifier "undefined8") (function_declarator "FUN_00126680(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)" (identifier "FUN_00126680") (parameter_list "(undefined8 *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (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 "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) () ")"))) (compound_statement "{\n  uint uVar1;\n  char acStack_48 [32];\n  \n  if (*(int *)(param_1 + 1) != 0) {\n    uVar1 = 0;\n    do {\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    } while (uVar1 < *(uint *)(param_1 + 1));\n  }\n  sprintf(acStack_48,"0x%lx",param_4);\n  fprintf((FILE *)*param_1,"\n",param_2,param_3,acStack_48);\n  return 1;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "char acStack_48 [32];" (primitive_type "char") (array_declarator "acStack_48 [32]" (identifier "acStack_48") ([ "[") (number_literal "32") (] "]")) (; ";")) (if_statement "if (*(int *)(param_1 + 1) != 0) {\n    uVar1 = 0;\n    do {\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    } while (uVar1 < *(uint *)(param_1 + 1));\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 1) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 1) != 0" (pointer_expression "*(int *)(param_1 + 1)" (* "*") (cast_expression "(int *)(param_1 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 1)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar1 = 0;\n    do {\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    } while (uVar1 < *(uint *)(param_1 + 1));\n  }" ({ "{") (expression_statement "uVar1 = 0;" (assignment_expression "uVar1 = 0" (identifier "uVar1") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    } while (uVar1 < *(uint *)(param_1 + 1));" (do "do") (compound_statement "{\n      uVar1 = uVar1 + 1;\n      putc(0x20,(FILE *)*param_1);\n    }" ({ "{") (expression_statement "uVar1 = uVar1 + 1;" (assignment_expression "uVar1 = uVar1 + 1" (identifier "uVar1") (= "=") (binary_expression "uVar1 + 1" (identifier "uVar1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "putc(0x20,(FILE *)*param_1);" (call_expression "putc(0x20,(FILE *)*param_1)" (identifier "putc") (argument_list "(0x20,(FILE *)*param_1)" (( "(") (number_literal "0x20") (, ",") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar1 < *(uint *)(param_1 + 1))" (( "(") (binary_expression "uVar1 < *(uint *)(param_1 + 1)" (identifier "uVar1") (< "<") (pointer_expression "*(uint *)(param_1 + 1)" (* "*") (cast_expression "(uint *)(param_1 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 1)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "sprintf(acStack_48,"0x%lx",param_4);" (call_expression "sprintf(acStack_48,"0x%lx",param_4)" (identifier "sprintf") (argument_list "(acStack_48,"0x%lx",param_4)" (( "(") (identifier "acStack_48") (, ",") (string_literal ""0x%lx"" (" """) (string_content "0x%lx") (" """)) (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "fprintf((FILE *)*param_1,"\n",param_2,param_3,acStack_48);" (call_expression "fprintf((FILE *)*param_1,"\n",param_2,param_3,acStack_48)" (identifier "fprintf") (argument_list "((FILE *)*param_1,"\n",param_2,param_3,acStack_48)" (( "(") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (, ",") (string_literal ""\n"" (" """) (escape_sequence "\n") (" """)) (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "acStack_48") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

type_1 function_1(void *p,char *filename,type_2 lineno,type_3 addr)

{
  type_4 var_1;
  type_5 *info;
  char ab [22];
  
  if (*(int *)((long)p + 8) != 0) {
    var_1 = 0;
    do {
                    /* WARNING: Load size is inaccurate */
      var_1 = var_1 + 1;
      var_2(0x20,*p);
    } while (var_1 < *(type_4 *)((long)p + 8));
  }
  var_3(ab,"0x%lx",addr);
                    /* WARNING: Load size is inaccurate */
  var_4(*p,"/* file %s line %lu addr %s */\n",filename,lineno,ab);
  return 1;
}


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

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

{
  uint uVar1;
  char acStack_48 [32];
  
  if (*(int *)(param_1 + 1) != 0) {
    uVar1 = 0;
    do {
      uVar1 = uVar1 + 1;
      putc(0x20,(FILE *)*param_1);
    } while (uVar1 < *(uint *)(param_1 + 1));
  }
  sprintf(acStack_48,"0x%lx",param_4);
  fprintf((FILE *)*param_1,"/* file %s line %lu addr %s */\n",param_2,param_3,acStack_48);
  return 1;
}

