
bfd_boolean pr_function_parameter(void *p,char *name,debug_parm_kind kind,bfd_vma val)

{
  bfd_boolean bVar1;
  char *__ptr;
  char ab [22];
  
  if ((((1 < kind - DEBUG_PARM_REFERENCE) || (bVar1 = pr_reference_type(p), bVar1 != 0)) &&
      (bVar1 = substitute_type((pr_handle *)p,name), bVar1 != 0)) &&
     (__ptr = pop_type((pr_handle *)((long)p + 0x10)), __ptr != (char *)0x0)) {
    if (*(int *)((long)p + 0x18) != 1) {
                    /* WARNING: Load size is inaccurate */
      fwrite(", ",1,2,*p);
    }
    if ((kind - DEBUG_PARM_REG & 0xfffffffd) == 0) {
                    /* WARNING: Load size is inaccurate */
      fwrite("register ",1,9,*p);
    }
    sprintf(ab,"0x%lx",val);
                    /* WARNING: Load size is inaccurate */
    fprintf(*p,"%s /* %s */",__ptr,ab);
    free(__ptr);
    *(int *)((long)p + 0x18) = *(int *)((long)p + 0x18) + 1;
    return 1;
  }
  return 0;
}



undefined8 FUN_001284c0(undefined8 *param_1,undefined8 param_2,int param_3,undefined8 param_4)

{
  int iVar1;
  void *__ptr;
  char local_48 [40];
  
  if ((((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&
      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)) &&
     (__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0)) {
    if (*(int *)(param_1 + 3) != 1) {
      fwrite(", ",1,2,(FILE *)*param_1);
    }
    if ((param_3 - 2U & 0xfffffffd) == 0) {
      fwrite("register ",1,9,(FILE *)*param_1);
    }
    sprintf(local_48,"0x%lx",param_4);
    fprintf((FILE *)*param_1,"%s /* %s */",__ptr,local_48);
    free(__ptr);
    *(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1;
    return 1;
  }
  return 0;
}


PUSH R13
LEA EAX,[RDX + -0x3]
PUSH R12
MOV R12,RCX
PUSH RBP
MOV EBP,EDX
PUSH RBX
MOV RBX,RDI
SUB RSP,0x38
CMP EAX,0x1
JBE 0x00128570
MOV RDI,RBX
CALL 0x00127110
TEST EAX,EAX
JNZ 0x00128500
ADD RSP,0x38
XOR EAX,EAX
POP RBX
POP RBP
POP R12
POP R13
RET
LEA RDI,[RBX + 0x10]
CALL 0x00126930
MOV R13,RAX
TEST RAX,RAX
JZ 0x001284ea
CMP dword ptr [RBX + 0x18],0x1
JNZ 0x00128590
SUB EBP,0x2
AND EBP,0xfffffffd
JZ 0x001285b5
LEA RBP,[RSP + 0x10]
MOV RDX,R12
LEA RSI,[0x14789f]
XOR EAX,EAX
MOV RDI,RBP
CALL 0x00107760
MOV RDI,qword ptr [RBX]
MOV RCX,RBP
MOV RDX,R13
LEA RSI,[0x1458c8]
XOR EAX,EAX
CALL 0x00107850
MOV RDI,R13
CALL 0x00107070
ADD dword ptr [RBX + 0x18],0x1
ADD RSP,0x38
MOV EAX,0x1
POP RBX
POP RBP
POP R12
POP R13
RET
MOV qword ptr [RSP + 0x8],RSI
CALL 0x00128480
MOV RSI,qword ptr [RSP + 0x8]
TEST EAX,EAX
JNZ 0x001284de
JMP 0x001284ea
MOV RCX,qword ptr [RBX]
MOV EDX,0x2
MOV ESI,0x1
SUB EBP,0x2
LEA RDI,[0x13d7bc]
CALL 0x00107780
AND EBP,0xfffffffd
JNZ 0x00128523
MOV RCX,qword ptr [RBX]
MOV EDX,0x9
MOV ESI,0x1
LEA RDI,[0x1458a0]
CALL 0x00107780
JMP 0x00128523
(translation_unit "undefined8 FUN_001284c0(undefined8 *param_1,undefined8 param_2,int param_3,undefined8 param_4)\n\n{\n  int iVar1;\n  void *__ptr;\n  char local_48 [40];\n  \n  if ((((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)) &&\n     (__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0)) {\n    if (*(int *)(param_1 + 3) != 1) {\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }\n    if ((param_3 - 2U & 0xfffffffd) == 0) {\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }\n    sprintf(local_48,"0x%lx",param_4);\n    fprintf((FILE *)*param_1,"%s /* %s */",__ptr,local_48);\n    free(__ptr);\n    *(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1;\n    return 1;\n  }\n  return 0;\n}\n\n" (function_definition "undefined8 FUN_001284c0(undefined8 *param_1,undefined8 param_2,int param_3,undefined8 param_4)\n\n{\n  int iVar1;\n  void *__ptr;\n  char local_48 [40];\n  \n  if ((((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)) &&\n     (__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0)) {\n    if (*(int *)(param_1 + 3) != 1) {\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }\n    if ((param_3 - 2U & 0xfffffffd) == 0) {\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }\n    sprintf(local_48,"0x%lx",param_4);\n    fprintf((FILE *)*param_1,"%s /* %s */",__ptr,local_48);\n    free(__ptr);\n    *(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1;\n    return 1;\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_001284c0(undefined8 *param_1,undefined8 param_2,int param_3,undefined8 param_4)" identifier (parameter_list "(undefined8 *param_1,undefined8 param_2,int 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 "int param_3" primitive_type identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  void *__ptr;\n  char local_48 [40];\n  \n  if ((((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)) &&\n     (__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0)) {\n    if (*(int *)(param_1 + 3) != 1) {\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }\n    if ((param_3 - 2U & 0xfffffffd) == 0) {\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }\n    sprintf(local_48,"0x%lx",param_4);\n    fprintf((FILE *)*param_1,"%s /* %s */",__ptr,local_48);\n    free(__ptr);\n    *(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1;\n    return 1;\n  }\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "char local_48 [40];" primitive_type (array_declarator "local_48 [40]" identifier [ number_literal ]) ;) (if_statement "if ((((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)) &&\n     (__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0)) {\n    if (*(int *)(param_1 + 3) != 1) {\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }\n    if ((param_3 - 2U & 0xfffffffd) == 0) {\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }\n    sprintf(local_48,"0x%lx",param_4);\n    fprintf((FILE *)*param_1,"%s /* %s */",__ptr,local_48);\n    free(__ptr);\n    *(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1;\n    return 1;\n  }" if (parenthesized_expression "((((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)) &&\n     (__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0))" ( (binary_expression "(((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)) &&\n     (__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0)" (parenthesized_expression "(((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0))" ( (binary_expression "((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)" (parenthesized_expression "((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0))" ( (binary_expression "(1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)" (parenthesized_expression "(1 < param_3 - 3U)" ( (binary_expression "1 < param_3 - 3U" number_literal < (binary_expression "param_3 - 3U" identifier - number_literal)) )) || (parenthesized_expression "(iVar1 = FUN_00128480(), iVar1 != 0)" ( (comma_expression "iVar1 = FUN_00128480(), iVar1 != 0" (assignment_expression "iVar1 = FUN_00128480()" identifier = (call_expression "FUN_00128480()" identifier (argument_list "()" ( )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)" ( (comma_expression "iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0" (assignment_expression "iVar1 = FUN_00127110(param_1,param_2)" identifier = (call_expression "FUN_00127110(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0)" ( (comma_expression "__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0" (assignment_expression "__ptr = (void *)FUN_00126930(param_1 + 2)" identifier = (cast_expression "(void *)FUN_00126930(param_1 + 2)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00126930(param_1 + 2)" identifier (argument_list "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) ))))) , (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    if (*(int *)(param_1 + 3) != 1) {\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }\n    if ((param_3 - 2U & 0xfffffffd) == 0) {\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }\n    sprintf(local_48,"0x%lx",param_4);\n    fprintf((FILE *)*param_1,"%s /* %s */",__ptr,local_48);\n    free(__ptr);\n    *(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1;\n    return 1;\n  }" { (if_statement "if (*(int *)(param_1 + 3) != 1) {\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 3) != 1)" ( (binary_expression "*(int *)(param_1 + 3) != 1" (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }" { (expression_statement "fwrite(", ",1,2,(FILE *)*param_1);" (call_expression "fwrite(", ",1,2,(FILE *)*param_1)" identifier (argument_list "(", ",1,2,(FILE *)*param_1)" ( (string_literal "", "" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) })) (if_statement "if ((param_3 - 2U & 0xfffffffd) == 0) {\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }" if (parenthesized_expression "((param_3 - 2U & 0xfffffffd) == 0)" ( (binary_expression "(param_3 - 2U & 0xfffffffd) == 0" (parenthesized_expression "(param_3 - 2U & 0xfffffffd)" ( (binary_expression "param_3 - 2U & 0xfffffffd" (binary_expression "param_3 - 2U" identifier - number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }" { (expression_statement "fwrite("register ",1,9,(FILE *)*param_1);" (call_expression "fwrite("register ",1,9,(FILE *)*param_1)" identifier (argument_list "("register ",1,9,(FILE *)*param_1)" ( (string_literal ""register "" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) })) (expression_statement "sprintf(local_48,"0x%lx",param_4);" (call_expression "sprintf(local_48,"0x%lx",param_4)" identifier (argument_list "(local_48,"0x%lx",param_4)" ( identifier , (string_literal ""0x%lx"" " string_content ") , identifier ))) ;) (expression_statement "fprintf((FILE *)*param_1,"%s /* %s */",__ptr,local_48);" (call_expression "fprintf((FILE *)*param_1,"%s /* %s */",__ptr,local_48)" identifier (argument_list "((FILE *)*param_1,"%s /* %s */",__ptr,local_48)" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal ""%s /* %s */"" " string_content ") , identifier , identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "*(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1;" (assignment_expression "*(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1" (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 3) + 1" (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) + number_literal)) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "bfd_boolean pr_function_parameter(void *p,char *name,debug_parm_kind kind,bfd_vma val)\n\n{\n  bfd_boolean bVar1;\n  char *__ptr;\n  char ab [22];\n  \n  if ((((1 < kind - DEBUG_PARM_REFERENCE) || (bVar1 = pr_reference_type(p), bVar1 != 0)) &&\n      (bVar1 = substitute_type((pr_handle *)p,name), bVar1 != 0)) &&\n     (__ptr = pop_type((pr_handle *)((long)p + 0x10)), __ptr != (char *)0x0)) {\n    if (*(int *)((long)p + 0x18) != 1) {\n                    /* WARNING: Load size is inaccurate */\n      fwrite(", ",1,2,*p);\n    }\n    if ((kind - DEBUG_PARM_REG & 0xfffffffd) == 0) {\n                    /* WARNING: Load size is inaccurate */\n      fwrite("register ",1,9,*p);\n    }\n    sprintf(ab,"0x%lx",val);\n                    /* WARNING: Load size is inaccurate */\n    fprintf(*p,"%s /* %s */",__ptr,ab);\n    free(__ptr);\n    *(int *)((long)p + 0x18) = *(int *)((long)p + 0x18) + 1;\n    return 1;\n  }\n  return 0;\n}\n\n" (function_definition "bfd_boolean pr_function_parameter(void *p,char *name,debug_parm_kind kind,bfd_vma val)\n\n{\n  bfd_boolean bVar1;\n  char *__ptr;\n  char ab [22];\n  \n  if ((((1 < kind - DEBUG_PARM_REFERENCE) || (bVar1 = pr_reference_type(p), bVar1 != 0)) &&\n      (bVar1 = substitute_type((pr_handle *)p,name), bVar1 != 0)) &&\n     (__ptr = pop_type((pr_handle *)((long)p + 0x10)), __ptr != (char *)0x0)) {\n    if (*(int *)((long)p + 0x18) != 1) {\n                    /* WARNING: Load size is inaccurate */\n      fwrite(", ",1,2,*p);\n    }\n    if ((kind - DEBUG_PARM_REG & 0xfffffffd) == 0) {\n                    /* WARNING: Load size is inaccurate */\n      fwrite("register ",1,9,*p);\n    }\n    sprintf(ab,"0x%lx",val);\n                    /* WARNING: Load size is inaccurate */\n    fprintf(*p,"%s /* %s */",__ptr,ab);\n    free(__ptr);\n    *(int *)((long)p + 0x18) = *(int *)((long)p + 0x18) + 1;\n    return 1;\n  }\n  return 0;\n}" type_identifier (function_declarator "pr_function_parameter(void *p,char *name,debug_parm_kind kind,bfd_vma val)" identifier (parameter_list "(void *p,char *name,debug_parm_kind kind,bfd_vma val)" ( (parameter_declaration "void *p" primitive_type (pointer_declarator "*p" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "debug_parm_kind kind" type_identifier identifier) , (parameter_declaration "bfd_vma val" type_identifier identifier) ))) (compound_statement "{\n  bfd_boolean bVar1;\n  char *__ptr;\n  char ab [22];\n  \n  if ((((1 < kind - DEBUG_PARM_REFERENCE) || (bVar1 = pr_reference_type(p), bVar1 != 0)) &&\n      (bVar1 = substitute_type((pr_handle *)p,name), bVar1 != 0)) &&\n     (__ptr = pop_type((pr_handle *)((long)p + 0x10)), __ptr != (char *)0x0)) {\n    if (*(int *)((long)p + 0x18) != 1) {\n                    /* WARNING: Load size is inaccurate */\n      fwrite(", ",1,2,*p);\n    }\n    if ((kind - DEBUG_PARM_REG & 0xfffffffd) == 0) {\n                    /* WARNING: Load size is inaccurate */\n      fwrite("register ",1,9,*p);\n    }\n    sprintf(ab,"0x%lx",val);\n                    /* WARNING: Load size is inaccurate */\n    fprintf(*p,"%s /* %s */",__ptr,ab);\n    free(__ptr);\n    *(int *)((long)p + 0x18) = *(int *)((long)p + 0x18) + 1;\n    return 1;\n  }\n  return 0;\n}" { (declaration "bfd_boolean bVar1;" type_identifier identifier ;) (declaration "char *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "char ab [22];" primitive_type (array_declarator "ab [22]" identifier [ number_literal ]) ;) (if_statement "if ((((1 < kind - DEBUG_PARM_REFERENCE) || (bVar1 = pr_reference_type(p), bVar1 != 0)) &&\n      (bVar1 = substitute_type((pr_handle *)p,name), bVar1 != 0)) &&\n     (__ptr = pop_type((pr_handle *)((long)p + 0x10)), __ptr != (char *)0x0)) {\n    if (*(int *)((long)p + 0x18) != 1) {\n                    /* WARNING: Load size is inaccurate */\n      fwrite(", ",1,2,*p);\n    }\n    if ((kind - DEBUG_PARM_REG & 0xfffffffd) == 0) {\n                    /* WARNING: Load size is inaccurate */\n      fwrite("register ",1,9,*p);\n    }\n    sprintf(ab,"0x%lx",val);\n                    /* WARNING: Load size is inaccurate */\n    fprintf(*p,"%s /* %s */",__ptr,ab);\n    free(__ptr);\n    *(int *)((long)p + 0x18) = *(int *)((long)p + 0x18) + 1;\n    return 1;\n  }" if (parenthesized_expression "((((1 < kind - DEBUG_PARM_REFERENCE) || (bVar1 = pr_reference_type(p), bVar1 != 0)) &&\n      (bVar1 = substitute_type((pr_handle *)p,name), bVar1 != 0)) &&\n     (__ptr = pop_type((pr_handle *)((long)p + 0x10)), __ptr != (char *)0x0))" ( (binary_expression "(((1 < kind - DEBUG_PARM_REFERENCE) || (bVar1 = pr_reference_type(p), bVar1 != 0)) &&\n      (bVar1 = substitute_type((pr_handle *)p,name), bVar1 != 0)) &&\n     (__ptr = pop_type((pr_handle *)((long)p + 0x10)), __ptr != (char *)0x0)" (parenthesized_expression "(((1 < kind - DEBUG_PARM_REFERENCE) || (bVar1 = pr_reference_type(p), bVar1 != 0)) &&\n      (bVar1 = substitute_type((pr_handle *)p,name), bVar1 != 0))" ( (binary_expression "((1 < kind - DEBUG_PARM_REFERENCE) || (bVar1 = pr_reference_type(p), bVar1 != 0)) &&\n      (bVar1 = substitute_type((pr_handle *)p,name), bVar1 != 0)" (parenthesized_expression "((1 < kind - DEBUG_PARM_REFERENCE) || (bVar1 = pr_reference_type(p), bVar1 != 0))" ( (binary_expression "(1 < kind - DEBUG_PARM_REFERENCE) || (bVar1 = pr_reference_type(p), bVar1 != 0)" (parenthesized_expression "(1 < kind - DEBUG_PARM_REFERENCE)" ( (binary_expression "1 < kind - DEBUG_PARM_REFERENCE" number_literal < (binary_expression "kind - DEBUG_PARM_REFERENCE" identifier - identifier)) )) || (parenthesized_expression "(bVar1 = pr_reference_type(p), bVar1 != 0)" ( (comma_expression "bVar1 = pr_reference_type(p), bVar1 != 0" (assignment_expression "bVar1 = pr_reference_type(p)" identifier = (call_expression "pr_reference_type(p)" identifier (argument_list "(p)" ( identifier )))) , (binary_expression "bVar1 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(bVar1 = substitute_type((pr_handle *)p,name), bVar1 != 0)" ( (comma_expression "bVar1 = substitute_type((pr_handle *)p,name), bVar1 != 0" (assignment_expression "bVar1 = substitute_type((pr_handle *)p,name)" identifier = (call_expression "substitute_type((pr_handle *)p,name)" identifier (argument_list "((pr_handle *)p,name)" ( (cast_expression "(pr_handle *)p" ( (type_descriptor "pr_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "bVar1 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(__ptr = pop_type((pr_handle *)((long)p + 0x10)), __ptr != (char *)0x0)" ( (comma_expression "__ptr = pop_type((pr_handle *)((long)p + 0x10)), __ptr != (char *)0x0" (assignment_expression "__ptr = pop_type((pr_handle *)((long)p + 0x10))" identifier = (call_expression "pop_type((pr_handle *)((long)p + 0x10))" identifier (argument_list "((pr_handle *)((long)p + 0x10))" ( (cast_expression "(pr_handle *)((long)p + 0x10)" ( (type_descriptor "pr_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x10)" ( (binary_expression "(long)p + 0x10" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))) )))) , (binary_expression "__ptr != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    if (*(int *)((long)p + 0x18) != 1) {\n                    /* WARNING: Load size is inaccurate */\n      fwrite(", ",1,2,*p);\n    }\n    if ((kind - DEBUG_PARM_REG & 0xfffffffd) == 0) {\n                    /* WARNING: Load size is inaccurate */\n      fwrite("register ",1,9,*p);\n    }\n    sprintf(ab,"0x%lx",val);\n                    /* WARNING: Load size is inaccurate */\n    fprintf(*p,"%s /* %s */",__ptr,ab);\n    free(__ptr);\n    *(int *)((long)p + 0x18) = *(int *)((long)p + 0x18) + 1;\n    return 1;\n  }" { (if_statement "if (*(int *)((long)p + 0x18) != 1) {\n                    /* WARNING: Load size is inaccurate */\n      fwrite(", ",1,2,*p);\n    }" if (parenthesized_expression "(*(int *)((long)p + 0x18) != 1)" ( (binary_expression "*(int *)((long)p + 0x18) != 1" (pointer_expression "*(int *)((long)p + 0x18)" * (cast_expression "(int *)((long)p + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x18)" ( (binary_expression "(long)p + 0x18" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Load size is inaccurate */\n      fwrite(", ",1,2,*p);\n    }" { comment (expression_statement "fwrite(", ",1,2,*p);" (call_expression "fwrite(", ",1,2,*p)" identifier (argument_list "(", ",1,2,*p)" ( (string_literal "", "" " string_content ") , number_literal , number_literal , (pointer_expression "*p" * identifier) ))) ;) })) (if_statement "if ((kind - DEBUG_PARM_REG & 0xfffffffd) == 0) {\n                    /* WARNING: Load size is inaccurate */\n      fwrite("register ",1,9,*p);\n    }" if (parenthesized_expression "((kind - DEBUG_PARM_REG & 0xfffffffd) == 0)" ( (binary_expression "(kind - DEBUG_PARM_REG & 0xfffffffd) == 0" (parenthesized_expression "(kind - DEBUG_PARM_REG & 0xfffffffd)" ( (binary_expression "kind - DEBUG_PARM_REG & 0xfffffffd" (binary_expression "kind - DEBUG_PARM_REG" identifier - identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Load size is inaccurate */\n      fwrite("register ",1,9,*p);\n    }" { comment (expression_statement "fwrite("register ",1,9,*p);" (call_expression "fwrite("register ",1,9,*p)" identifier (argument_list "("register ",1,9,*p)" ( (string_literal ""register "" " string_content ") , number_literal , number_literal , (pointer_expression "*p" * identifier) ))) ;) })) (expression_statement "sprintf(ab,"0x%lx",val);" (call_expression "sprintf(ab,"0x%lx",val)" identifier (argument_list "(ab,"0x%lx",val)" ( identifier , (string_literal ""0x%lx"" " string_content ") , identifier ))) ;) comment (expression_statement "fprintf(*p,"%s /* %s */",__ptr,ab);" (call_expression "fprintf(*p,"%s /* %s */",__ptr,ab)" identifier (argument_list "(*p,"%s /* %s */",__ptr,ab)" ( (pointer_expression "*p" * identifier) , (string_literal ""%s /* %s */"" " string_content ") , identifier , identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "*(int *)((long)p + 0x18) = *(int *)((long)p + 0x18) + 1;" (assignment_expression "*(int *)((long)p + 0x18) = *(int *)((long)p + 0x18) + 1" (pointer_expression "*(int *)((long)p + 0x18)" * (cast_expression "(int *)((long)p + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x18)" ( (binary_expression "(long)p + 0x18" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((long)p + 0x18) + 1" (pointer_expression "*(int *)((long)p + 0x18)" * (cast_expression "(int *)((long)p + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)p + 0x18)" ( (binary_expression "(long)p + 0x18" (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) + number_literal)) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "undefined8 FUN_001284c0(undefined8 *param_1,undefined8 param_2,int param_3,undefined8 param_4)\n\n{\n  int iVar1;\n  void *__ptr;\n  char local_48 [40];\n  \n  if ((((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)) &&\n     (__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0)) {\n    if (*(int *)(param_1 + 3) != 1) {\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }\n    if ((param_3 - 2U & 0xfffffffd) == 0) {\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }\n    sprintf(local_48,"0x%lx",param_4);\n    fprintf((FILE *)*param_1,"%s ",__ptr,local_48);\n    free(__ptr);\n    *(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1;\n    return 1;\n  }\n  return 0;\n}\n\n" (function_definition "undefined8 FUN_001284c0(undefined8 *param_1,undefined8 param_2,int param_3,undefined8 param_4)\n\n{\n  int iVar1;\n  void *__ptr;\n  char local_48 [40];\n  \n  if ((((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)) &&\n     (__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0)) {\n    if (*(int *)(param_1 + 3) != 1) {\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }\n    if ((param_3 - 2U & 0xfffffffd) == 0) {\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }\n    sprintf(local_48,"0x%lx",param_4);\n    fprintf((FILE *)*param_1,"%s ",__ptr,local_48);\n    free(__ptr);\n    *(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1;\n    return 1;\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_001284c0(undefined8 *param_1,undefined8 param_2,int param_3,undefined8 param_4)" identifier (parameter_list "(undefined8 *param_1,undefined8 param_2,int 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 "int param_3" primitive_type identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  void *__ptr;\n  char local_48 [40];\n  \n  if ((((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)) &&\n     (__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0)) {\n    if (*(int *)(param_1 + 3) != 1) {\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }\n    if ((param_3 - 2U & 0xfffffffd) == 0) {\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }\n    sprintf(local_48,"0x%lx",param_4);\n    fprintf((FILE *)*param_1,"%s ",__ptr,local_48);\n    free(__ptr);\n    *(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1;\n    return 1;\n  }\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "char local_48 [40];" primitive_type (array_declarator "local_48 [40]" identifier [ number_literal ]) ;) (if_statement "if ((((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)) &&\n     (__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0)) {\n    if (*(int *)(param_1 + 3) != 1) {\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }\n    if ((param_3 - 2U & 0xfffffffd) == 0) {\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }\n    sprintf(local_48,"0x%lx",param_4);\n    fprintf((FILE *)*param_1,"%s ",__ptr,local_48);\n    free(__ptr);\n    *(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1;\n    return 1;\n  }" if (parenthesized_expression "((((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)) &&\n     (__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0))" ( (binary_expression "(((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)) &&\n     (__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0)" (parenthesized_expression "(((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0))" ( (binary_expression "((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)" (parenthesized_expression "((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0))" ( (binary_expression "(1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)" (parenthesized_expression "(1 < param_3 - 3U)" ( (binary_expression "1 < param_3 - 3U" number_literal < (binary_expression "param_3 - 3U" identifier - number_literal)) )) || (parenthesized_expression "(iVar1 = FUN_00128480(), iVar1 != 0)" ( (comma_expression "iVar1 = FUN_00128480(), iVar1 != 0" (assignment_expression "iVar1 = FUN_00128480()" identifier = (call_expression "FUN_00128480()" identifier (argument_list "()" ( )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)" ( (comma_expression "iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0" (assignment_expression "iVar1 = FUN_00127110(param_1,param_2)" identifier = (call_expression "FUN_00127110(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0)" ( (comma_expression "__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0" (assignment_expression "__ptr = (void *)FUN_00126930(param_1 + 2)" identifier = (cast_expression "(void *)FUN_00126930(param_1 + 2)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00126930(param_1 + 2)" identifier (argument_list "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) ))))) , (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    if (*(int *)(param_1 + 3) != 1) {\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }\n    if ((param_3 - 2U & 0xfffffffd) == 0) {\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }\n    sprintf(local_48,"0x%lx",param_4);\n    fprintf((FILE *)*param_1,"%s ",__ptr,local_48);\n    free(__ptr);\n    *(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1;\n    return 1;\n  }" { (if_statement "if (*(int *)(param_1 + 3) != 1) {\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 3) != 1)" ( (binary_expression "*(int *)(param_1 + 3) != 1" (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }" { (expression_statement "fwrite(", ",1,2,(FILE *)*param_1);" (call_expression "fwrite(", ",1,2,(FILE *)*param_1)" identifier (argument_list "(", ",1,2,(FILE *)*param_1)" ( (string_literal "", "" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) })) (if_statement "if ((param_3 - 2U & 0xfffffffd) == 0) {\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }" if (parenthesized_expression "((param_3 - 2U & 0xfffffffd) == 0)" ( (binary_expression "(param_3 - 2U & 0xfffffffd) == 0" (parenthesized_expression "(param_3 - 2U & 0xfffffffd)" ( (binary_expression "param_3 - 2U & 0xfffffffd" (binary_expression "param_3 - 2U" identifier - number_literal) & number_literal) )) == number_literal) )) (compound_statement "{\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }" { (expression_statement "fwrite("register ",1,9,(FILE *)*param_1);" (call_expression "fwrite("register ",1,9,(FILE *)*param_1)" identifier (argument_list "("register ",1,9,(FILE *)*param_1)" ( (string_literal ""register "" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) })) (expression_statement "sprintf(local_48,"0x%lx",param_4);" (call_expression "sprintf(local_48,"0x%lx",param_4)" identifier (argument_list "(local_48,"0x%lx",param_4)" ( identifier , (string_literal ""0x%lx"" " string_content ") , identifier ))) ;) (expression_statement "fprintf((FILE *)*param_1,"%s ",__ptr,local_48);" (call_expression "fprintf((FILE *)*param_1,"%s ",__ptr,local_48)" identifier (argument_list "((FILE *)*param_1,"%s ",__ptr,local_48)" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal ""%s "" " string_content ") , identifier , identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "*(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1;" (assignment_expression "*(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1" (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) = (binary_expression "*(int *)(param_1 + 3) + 1" (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) + number_literal)) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 0;" 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 (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (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 (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ))) ;) })) (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 " string_content ") , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (return_statement return LIT ;) })) (return_statement return LIT ;) })))
(function_definition "undefined8 FUN_001284c0(undefined8 *param_1,undefined8 param_2,int param_3,undefined8 param_4)\n\n{\n  int iVar1;\n  void *__ptr;\n  char local_48 [40];\n  \n  if ((((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)) &&\n     (__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0)) {\n    if (*(int *)(param_1 + 3) != 1) {\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }\n    if ((param_3 - 2U & 0xfffffffd) == 0) {\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }\n    sprintf(local_48,"0x%lx",param_4);\n    fprintf((FILE *)*param_1,"%s ",__ptr,local_48);\n    free(__ptr);\n    *(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1;\n    return 1;\n  }\n  return 0;\n}" (type_identifier "undefined8") (function_declarator "FUN_001284c0(undefined8 *param_1,undefined8 param_2,int param_3,undefined8 param_4)" (identifier "FUN_001284c0") (parameter_list "(undefined8 *param_1,undefined8 param_2,int 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 "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) () ")"))) (compound_statement "{\n  int iVar1;\n  void *__ptr;\n  char local_48 [40];\n  \n  if ((((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)) &&\n     (__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0)) {\n    if (*(int *)(param_1 + 3) != 1) {\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }\n    if ((param_3 - 2U & 0xfffffffd) == 0) {\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }\n    sprintf(local_48,"0x%lx",param_4);\n    fprintf((FILE *)*param_1,"%s ",__ptr,local_48);\n    free(__ptr);\n    *(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1;\n    return 1;\n  }\n  return 0;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "char local_48 [40];" (primitive_type "char") (array_declarator "local_48 [40]" (identifier "local_48") ([ "[") (number_literal "40") (] "]")) (; ";")) (if_statement "if ((((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)) &&\n     (__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0)) {\n    if (*(int *)(param_1 + 3) != 1) {\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }\n    if ((param_3 - 2U & 0xfffffffd) == 0) {\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }\n    sprintf(local_48,"0x%lx",param_4);\n    fprintf((FILE *)*param_1,"%s ",__ptr,local_48);\n    free(__ptr);\n    *(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1;\n    return 1;\n  }" (if "if") (parenthesized_expression "((((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)) &&\n     (__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0))" (( "(") (binary_expression "(((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)) &&\n     (__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0)" (parenthesized_expression "(((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0))" (( "(") (binary_expression "((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&\n      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)" (parenthesized_expression "((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0))" (( "(") (binary_expression "(1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)" (parenthesized_expression "(1 < param_3 - 3U)" (( "(") (binary_expression "1 < param_3 - 3U" (number_literal "1") (< "<") (binary_expression "param_3 - 3U" (identifier "param_3") (- "-") (number_literal "3U"))) () ")")) (|| "||") (parenthesized_expression "(iVar1 = FUN_00128480(), iVar1 != 0)" (( "(") (comma_expression "iVar1 = FUN_00128480(), iVar1 != 0" (assignment_expression "iVar1 = FUN_00128480()" (identifier "iVar1") (= "=") (call_expression "FUN_00128480()" (identifier "FUN_00128480") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)" (( "(") (comma_expression "iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0" (assignment_expression "iVar1 = FUN_00127110(param_1,param_2)" (identifier "iVar1") (= "=") (call_expression "FUN_00127110(param_1,param_2)" (identifier "FUN_00127110") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (, ",") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0)" (( "(") (comma_expression "__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0" (assignment_expression "__ptr = (void *)FUN_00126930(param_1 + 2)" (identifier "__ptr") (= "=") (cast_expression "(void *)FUN_00126930(param_1 + 2)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00126930(param_1 + 2)" (identifier "FUN_00126930") (argument_list "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")"))))) (, ",") (binary_expression "__ptr != (void *)0x0" (identifier "__ptr") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n    if (*(int *)(param_1 + 3) != 1) {\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }\n    if ((param_3 - 2U & 0xfffffffd) == 0) {\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }\n    sprintf(local_48,"0x%lx",param_4);\n    fprintf((FILE *)*param_1,"%s ",__ptr,local_48);\n    free(__ptr);\n    *(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1;\n    return 1;\n  }" ({ "{") (if_statement "if (*(int *)(param_1 + 3) != 1) {\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 3) != 1)" (( "(") (binary_expression "*(int *)(param_1 + 3) != 1" (pointer_expression "*(int *)(param_1 + 3)" (* "*") (cast_expression "(int *)(param_1 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 3)" (( "(") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3")) () ")")))) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n      fwrite(", ",1,2,(FILE *)*param_1);\n    }" ({ "{") (expression_statement "fwrite(", ",1,2,(FILE *)*param_1);" (call_expression "fwrite(", ",1,2,(FILE *)*param_1)" (identifier "fwrite") (argument_list "(", ",1,2,(FILE *)*param_1)" (( "(") (string_literal "", "" (" """) (string_content ", ") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "2") (, ",") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")"))) (; ";")) (} "}"))) (if_statement "if ((param_3 - 2U & 0xfffffffd) == 0) {\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }" (if "if") (parenthesized_expression "((param_3 - 2U & 0xfffffffd) == 0)" (( "(") (binary_expression "(param_3 - 2U & 0xfffffffd) == 0" (parenthesized_expression "(param_3 - 2U & 0xfffffffd)" (( "(") (binary_expression "param_3 - 2U & 0xfffffffd" (binary_expression "param_3 - 2U" (identifier "param_3") (- "-") (number_literal "2U")) (& "&") (number_literal "0xfffffffd")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite("register ",1,9,(FILE *)*param_1);\n    }" ({ "{") (expression_statement "fwrite("register ",1,9,(FILE *)*param_1);" (call_expression "fwrite("register ",1,9,(FILE *)*param_1)" (identifier "fwrite") (argument_list "("register ",1,9,(FILE *)*param_1)" (( "(") (string_literal ""register "" (" """) (string_content "register ") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "9") (, ",") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")"))) (; ";")) (} "}"))) (expression_statement "sprintf(local_48,"0x%lx",param_4);" (call_expression "sprintf(local_48,"0x%lx",param_4)" (identifier "sprintf") (argument_list "(local_48,"0x%lx",param_4)" (( "(") (identifier "local_48") (, ",") (string_literal ""0x%lx"" (" """) (string_content "0x%lx") (" """)) (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "fprintf((FILE *)*param_1,"%s ",__ptr,local_48);" (call_expression "fprintf((FILE *)*param_1,"%s ",__ptr,local_48)" (identifier "fprintf") (argument_list "((FILE *)*param_1,"%s ",__ptr,local_48)" (( "(") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (, ",") (string_literal ""%s "" (" """) (string_content "%s ") (" """)) (, ",") (identifier "__ptr") (, ",") (identifier "local_48") () ")"))) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "*(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1;" (assignment_expression "*(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1" (pointer_expression "*(int *)(param_1 + 3)" (* "*") (cast_expression "(int *)(param_1 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 3)" (( "(") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3")) () ")")))) (= "=") (binary_expression "*(int *)(param_1 + 3) + 1" (pointer_expression "*(int *)(param_1 + 3)" (* "*") (cast_expression "(int *)(param_1 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 3)" (( "(") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

type_1 function_1(void *p,char *name,type_2 var_1,type_3 val)

{
  type_1 var_4;
  char *var_7;
  char ab [22];
  
  if ((((1 < var_1 - var_2) || (var_4 = var_3(p), var_4 != 0)) &&
      (var_4 = var_5((type_4 *)p,name), var_4 != 0)) &&
     (var_7 = var_6((type_4 *)((long)p + 0x10)), var_7 != (char *)0x0)) {
    if (*(int *)((long)p + 0x18) != 1) {
                    /* WARNING: Load size is inaccurate */
      var_8(", ",1,2,*p);
    }
    if ((var_1 - var_9 & 0xfffffffd) == 0) {
                    /* WARNING: Load size is inaccurate */
      var_8("register ",1,9,*p);
    }
    var_10(ab,"0x%lx",val);
                    /* WARNING: Load size is inaccurate */
    var_11(*p,"%s /* %s */",var_7,ab);
    var_12(var_7);
    *(int *)((long)p + 0x18) = *(int *)((long)p + 0x18) + 1;
    return 1;
  }
  return 0;
}


(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: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) 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: (array_declarator declarator: (identifier) size: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (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 (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) consequence: (compound_statement (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 (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (number_literal) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (number_literal) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))))) (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 (string_content)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_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: (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)))) (return_statement (number_literal)))) (return_statement (number_literal)))))

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

{
  int iVar1;
  void *__ptr;
  char local_48 [40];
  
  if ((((1 < param_3 - 3U) || (iVar1 = FUN_00128480(), iVar1 != 0)) &&
      (iVar1 = FUN_00127110(param_1,param_2), iVar1 != 0)) &&
     (__ptr = (void *)FUN_00126930(param_1 + 2), __ptr != (void *)0x0)) {
    if (*(int *)(param_1 + 3) != 1) {
      fwrite(", ",1,2,(FILE *)*param_1);
    }
    if ((param_3 - 2U & 0xfffffffd) == 0) {
      fwrite("register ",1,9,(FILE *)*param_1);
    }
    sprintf(local_48,"0x%lx",param_4);
    fprintf((FILE *)*param_1,"%s /* %s */",__ptr,local_48);
    free(__ptr);
    *(int *)(param_1 + 3) = *(int *)(param_1 + 3) + 1;
    return 1;
  }
  return 0;
}

