
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

bfd_boolean tg_typed_constant(void *p,char *name,bfd_vma val)

{
  char *__ptr;
  uint uVar1;
  char ab [22];
  
  __ptr = pop_type((pr_handle *)((int)p + 8));
  if (__ptr != (char *)0x0) {
    if (*(int *)((int)p + 4) != 0) {
      uVar1 = 0;
      do {
                    /* WARNING: Load size is inaccurate */
        uVar1 = uVar1 + 1;
        putc(0x20,*p);
      } while (uVar1 < *(uint *)((int)p + 4));
    }
    sprintf(ab,"%lld",(undefined4)val,val._4_4_);
                    /* WARNING: Load size is inaccurate */
    fprintf(*p,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",name,*(undefined4 *)((int)p + 0x10)
            ,__ptr,ab);
    free(__ptr);
    return 1;
  }
  return 0;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4
FUN_0003a970(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)

{
  void *__ptr;
  uint uVar1;
  char local_32 [30];
  undefined4 uStack_14;
  
  uStack_14 = 0x3a979;
  __ptr = (void *)FUN_00036d90();
  if (__ptr != (void *)0x0) {
    if (param_1[1] != 0) {
      uVar1 = 0;
      do {
        uVar1 = uVar1 + 1;
        putc(0x20,(FILE *)*param_1);
      } while (uVar1 < (uint)param_1[1]);
    }
    sprintf(local_32,"%lld",param_3,param_4);
    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],
            __ptr,local_32);
    free(__ptr);
    return 1;
  }
  return 0;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000153d0
ADD EBX,0x38687
SUB ESP,0x3c
MOV EAX,dword ptr [ESP + 0x58]
MOV ESI,dword ptr [ESP + 0x50]
MOV EDX,dword ptr [ESP + 0x5c]
MOV dword ptr [ESP + 0x8],EAX
LEA EAX,[ESI + 0x8]
MOV dword ptr [ESP + 0xc],EDX
CALL 0x00036d90
TEST EAX,EAX
JZ 0x0003aa18
MOV ECX,dword ptr [ESI + 0x4]
MOV EBP,EAX
TEST ECX,ECX
JZ 0x0003a9c7
XOR EDI,EDI
LEA ESI,[ESI]
SUB ESP,0x8
PUSH dword ptr [ESI]
ADD EDI,0x1
PUSH 0x20
CALL 0x000146a0
ADD ESP,0x10
CMP EDI,dword ptr [ESI + 0x4]
JC 0x0003a9b0
LEA EAX,[EBX + 0xfffe09fe]
PUSH dword ptr [ESP + 0xc]
PUSH dword ptr [ESP + 0xc]
PUSH EAX
LEA EDI,[ESP + 0x26]
PUSH EDI
CALL 0x000146d0
POP EAX
LEA EAX,[EBX + 0xfffe46d4]
POP EDX
PUSH EDI
PUSH EBP
PUSH dword ptr [ESI + 0x10]
PUSH dword ptr [ESP + 0x68]
PUSH EAX
PUSH dword ptr [ESI]
CALL 0x00014878
ADD ESP,0x14
PUSH EBP
CALL 0x00014120
ADD ESP,0x10
MOV EAX,0x1
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
ADD ESP,0x3c
XOR EAX,EAX
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4\nFUN_0003a970(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  void *__ptr;\n  uint uVar1;\n  char local_32 [30];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x3a979;\n  __ptr = (void *)FUN_00036d90();\n  if (__ptr != (void *)0x0) {\n    if (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(local_32,"%lld",param_3,param_4);\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32);\n    free(__ptr);\n    return 1;\n  }\n  return 0;\n}\n\n" comment (function_definition "undefined4\nFUN_0003a970(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  void *__ptr;\n  uint uVar1;\n  char local_32 [30];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x3a979;\n  __ptr = (void *)FUN_00036d90();\n  if (__ptr != (void *)0x0) {\n    if (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(local_32,"%lld",param_3,param_4);\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32);\n    free(__ptr);\n    return 1;\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_0003a970(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  void *__ptr;\n  uint uVar1;\n  char local_32 [30];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x3a979;\n  __ptr = (void *)FUN_00036d90();\n  if (__ptr != (void *)0x0) {\n    if (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(local_32,"%lld",param_3,param_4);\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32);\n    free(__ptr);\n    return 1;\n  }\n  return 0;\n}" { (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "uint uVar1;" type_identifier identifier ;) (declaration "char local_32 [30];" primitive_type (array_declarator "local_32 [30]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x3a979;" (assignment_expression "uStack_14 = 0x3a979" identifier = number_literal) ;) (expression_statement "__ptr = (void *)FUN_00036d90();" (assignment_expression "__ptr = (void *)FUN_00036d90()" identifier = (cast_expression "(void *)FUN_00036d90()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00036d90()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (__ptr != (void *)0x0) {\n    if (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(local_32,"%lld",param_3,param_4);\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32);\n    free(__ptr);\n    return 1;\n  }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (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(local_32,"%lld",param_3,param_4);\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32);\n    free(__ptr);\n    return 1;\n  }" { (if_statement "if (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 "(param_1[1] != 0)" ( (binary_expression "param_1[1] != 0" (subscript_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 < (cast_expression "(uint)param_1[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) )) ;) })) (expression_statement "sprintf(local_32,"%lld",param_3,param_4);" (call_expression "sprintf(local_32,"%lld",param_3,param_4)" identifier (argument_list "(local_32,"%lld",param_3,param_4)" ( identifier , (string_literal ""%lld"" " string_content ") , identifier , identifier ))) ;) (expression_statement "fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32);" (call_expression "fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32)" identifier (argument_list "((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32)" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal ""%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier , (subscript_expression "param_1[4]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nbfd_boolean tg_typed_constant(void *p,char *name,bfd_vma val)\n\n{\n  char *__ptr;\n  uint uVar1;\n  char ab [22];\n  \n  __ptr = pop_type((pr_handle *)((int)p + 8));\n  if (__ptr != (char *)0x0) {\n    if (*(int *)((int)p + 4) != 0) {\n      uVar1 = 0;\n      do {\n                    /* WARNING: Load size is inaccurate */\n        uVar1 = uVar1 + 1;\n        putc(0x20,*p);\n      } while (uVar1 < *(uint *)((int)p + 4));\n    }\n    sprintf(ab,"%lld",(undefined4)val,val._4_4_);\n                    /* WARNING: Load size is inaccurate */\n    fprintf(*p,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",name,*(undefined4 *)((int)p + 0x10)\n            ,__ptr,ab);\n    free(__ptr);\n    return 1;\n  }\n  return 0;\n}\n\n" comment comment (function_definition "bfd_boolean tg_typed_constant(void *p,char *name,bfd_vma val)\n\n{\n  char *__ptr;\n  uint uVar1;\n  char ab [22];\n  \n  __ptr = pop_type((pr_handle *)((int)p + 8));\n  if (__ptr != (char *)0x0) {\n    if (*(int *)((int)p + 4) != 0) {\n      uVar1 = 0;\n      do {\n                    /* WARNING: Load size is inaccurate */\n        uVar1 = uVar1 + 1;\n        putc(0x20,*p);\n      } while (uVar1 < *(uint *)((int)p + 4));\n    }\n    sprintf(ab,"%lld",(undefined4)val,val._4_4_);\n                    /* WARNING: Load size is inaccurate */\n    fprintf(*p,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",name,*(undefined4 *)((int)p + 0x10)\n            ,__ptr,ab);\n    free(__ptr);\n    return 1;\n  }\n  return 0;\n}" type_identifier (function_declarator "tg_typed_constant(void *p,char *name,bfd_vma val)" identifier (parameter_list "(void *p,char *name,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 "bfd_vma val" type_identifier identifier) ))) (compound_statement "{\n  char *__ptr;\n  uint uVar1;\n  char ab [22];\n  \n  __ptr = pop_type((pr_handle *)((int)p + 8));\n  if (__ptr != (char *)0x0) {\n    if (*(int *)((int)p + 4) != 0) {\n      uVar1 = 0;\n      do {\n                    /* WARNING: Load size is inaccurate */\n        uVar1 = uVar1 + 1;\n        putc(0x20,*p);\n      } while (uVar1 < *(uint *)((int)p + 4));\n    }\n    sprintf(ab,"%lld",(undefined4)val,val._4_4_);\n                    /* WARNING: Load size is inaccurate */\n    fprintf(*p,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",name,*(undefined4 *)((int)p + 0x10)\n            ,__ptr,ab);\n    free(__ptr);\n    return 1;\n  }\n  return 0;\n}" { (declaration "char *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "uint uVar1;" type_identifier identifier ;) (declaration "char ab [22];" primitive_type (array_declarator "ab [22]" identifier [ number_literal ]) ;) (expression_statement "__ptr = pop_type((pr_handle *)((int)p + 8));" (assignment_expression "__ptr = pop_type((pr_handle *)((int)p + 8))" identifier = (call_expression "pop_type((pr_handle *)((int)p + 8))" identifier (argument_list "((pr_handle *)((int)p + 8))" ( (cast_expression "(pr_handle *)((int)p + 8)" ( (type_descriptor "pr_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 8)" ( (binary_expression "(int)p + 8" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) )))) ;) (if_statement "if (__ptr != (char *)0x0) {\n    if (*(int *)((int)p + 4) != 0) {\n      uVar1 = 0;\n      do {\n                    /* WARNING: Load size is inaccurate */\n        uVar1 = uVar1 + 1;\n        putc(0x20,*p);\n      } while (uVar1 < *(uint *)((int)p + 4));\n    }\n    sprintf(ab,"%lld",(undefined4)val,val._4_4_);\n                    /* WARNING: Load size is inaccurate */\n    fprintf(*p,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",name,*(undefined4 *)((int)p + 0x10)\n            ,__ptr,ab);\n    free(__ptr);\n    return 1;\n  }" if (parenthesized_expression "(__ptr != (char *)0x0)" ( (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 *)((int)p + 4) != 0) {\n      uVar1 = 0;\n      do {\n                    /* WARNING: Load size is inaccurate */\n        uVar1 = uVar1 + 1;\n        putc(0x20,*p);\n      } while (uVar1 < *(uint *)((int)p + 4));\n    }\n    sprintf(ab,"%lld",(undefined4)val,val._4_4_);\n                    /* WARNING: Load size is inaccurate */\n    fprintf(*p,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",name,*(undefined4 *)((int)p + 0x10)\n            ,__ptr,ab);\n    free(__ptr);\n    return 1;\n  }" { (if_statement "if (*(int *)((int)p + 4) != 0) {\n      uVar1 = 0;\n      do {\n                    /* WARNING: Load size is inaccurate */\n        uVar1 = uVar1 + 1;\n        putc(0x20,*p);\n      } while (uVar1 < *(uint *)((int)p + 4));\n    }" if (parenthesized_expression "(*(int *)((int)p + 4) != 0)" ( (binary_expression "*(int *)((int)p + 4) != 0" (pointer_expression "*(int *)((int)p + 4)" * (cast_expression "(int *)((int)p + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 4)" ( (binary_expression "(int)p + 4" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) 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 *)((int)p + 4));\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 *)((int)p + 4));" 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 *)((int)p + 4))" ( (binary_expression "uVar1 < *(uint *)((int)p + 4)" identifier < (pointer_expression "*(uint *)((int)p + 4)" * (cast_expression "(uint *)((int)p + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 4)" ( (binary_expression "(int)p + 4" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) ;) })) (expression_statement "sprintf(ab,"%lld",(undefined4)val,val._4_4_);" (call_expression "sprintf(ab,"%lld",(undefined4)val,val._4_4_)" identifier (argument_list "(ab,"%lld",(undefined4)val,val._4_4_)" ( identifier , (string_literal ""%lld"" " string_content ") , (cast_expression "(undefined4)val" ( (type_descriptor "undefined4" type_identifier) ) identifier) , (field_expression "val._4_4_" identifier . field_identifier) ))) ;) comment (expression_statement "fprintf(*p,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",name,*(undefined4 *)((int)p + 0x10)\n            ,__ptr,ab);" (call_expression "fprintf(*p,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",name,*(undefined4 *)((int)p + 0x10)\n            ,__ptr,ab)" identifier (argument_list "(*p,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",name,*(undefined4 *)((int)p + 0x10)\n            ,__ptr,ab)" ( (pointer_expression "*p" * identifier) , (string_literal ""%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier , (pointer_expression "*(undefined4 *)((int)p + 0x10)" * (cast_expression "(undefined4 *)((int)p + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p + 0x10)" ( (binary_expression "(int)p + 0x10" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "undefined4\nFUN_0003a970(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  void *__ptr;\n  uint uVar1;\n  char local_32 [30];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x3a979;\n  __ptr = (void *)FUN_00036d90();\n  if (__ptr != (void *)0x0) {\n    if (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(local_32,"%lld",param_3,param_4);\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32);\n    free(__ptr);\n    return 1;\n  }\n  return 0;\n}\n\n" (function_definition "undefined4\nFUN_0003a970(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  void *__ptr;\n  uint uVar1;\n  char local_32 [30];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x3a979;\n  __ptr = (void *)FUN_00036d90();\n  if (__ptr != (void *)0x0) {\n    if (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(local_32,"%lld",param_3,param_4);\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32);\n    free(__ptr);\n    return 1;\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_0003a970(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  void *__ptr;\n  uint uVar1;\n  char local_32 [30];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x3a979;\n  __ptr = (void *)FUN_00036d90();\n  if (__ptr != (void *)0x0) {\n    if (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(local_32,"%lld",param_3,param_4);\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32);\n    free(__ptr);\n    return 1;\n  }\n  return 0;\n}" { (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "uint uVar1;" type_identifier identifier ;) (declaration "char local_32 [30];" primitive_type (array_declarator "local_32 [30]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x3a979;" (assignment_expression "uStack_14 = 0x3a979" identifier = number_literal) ;) (expression_statement "__ptr = (void *)FUN_00036d90();" (assignment_expression "__ptr = (void *)FUN_00036d90()" identifier = (cast_expression "(void *)FUN_00036d90()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00036d90()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (__ptr != (void *)0x0) {\n    if (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(local_32,"%lld",param_3,param_4);\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32);\n    free(__ptr);\n    return 1;\n  }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (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(local_32,"%lld",param_3,param_4);\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32);\n    free(__ptr);\n    return 1;\n  }" { (if_statement "if (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 "(param_1[1] != 0)" ( (binary_expression "param_1[1] != 0" (subscript_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 < (cast_expression "(uint)param_1[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) )) ;) })) (expression_statement "sprintf(local_32,"%lld",param_3,param_4);" (call_expression "sprintf(local_32,"%lld",param_3,param_4)" identifier (argument_list "(local_32,"%lld",param_3,param_4)" ( identifier , (string_literal ""%lld"" " string_content ") , identifier , identifier ))) ;) (expression_statement "fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32);" (call_expression "fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32)" identifier (argument_list "((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32)" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal ""%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier , (subscript_expression "param_1[4]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_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 < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , IDENT , (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (return_statement return LIT ;) })))
(function_definition "undefined4\nFUN_0003a970(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  void *__ptr;\n  uint uVar1;\n  char local_32 [30];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x3a979;\n  __ptr = (void *)FUN_00036d90();\n  if (__ptr != (void *)0x0) {\n    if (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(local_32,"%lld",param_3,param_4);\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32);\n    free(__ptr);\n    return 1;\n  }\n  return 0;\n}" (type_identifier "undefined4") (function_declarator "FUN_0003a970(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)" (identifier "FUN_0003a970") (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) () ")"))) (compound_statement "{\n  void *__ptr;\n  uint uVar1;\n  char local_32 [30];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x3a979;\n  __ptr = (void *)FUN_00036d90();\n  if (__ptr != (void *)0x0) {\n    if (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(local_32,"%lld",param_3,param_4);\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32);\n    free(__ptr);\n    return 1;\n  }\n  return 0;\n}" ({ "{") (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "char local_32 [30];" (primitive_type "char") (array_declarator "local_32 [30]" (identifier "local_32") ([ "[") (number_literal "30") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x3a979;" (assignment_expression "uStack_14 = 0x3a979" (identifier "uStack_14") (= "=") (number_literal "0x3a979")) (; ";")) (expression_statement "__ptr = (void *)FUN_00036d90();" (assignment_expression "__ptr = (void *)FUN_00036d90()" (identifier "__ptr") (= "=") (cast_expression "(void *)FUN_00036d90()" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00036d90()" (identifier "FUN_00036d90") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (__ptr != (void *)0x0) {\n    if (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(local_32,"%lld",param_3,param_4);\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32);\n    free(__ptr);\n    return 1;\n  }" (if "if") (parenthesized_expression "(__ptr != (void *)0x0)" (( "(") (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 (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(local_32,"%lld",param_3,param_4);\n    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32);\n    free(__ptr);\n    return 1;\n  }" ({ "{") (if_statement "if (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 "(param_1[1] != 0)" (( "(") (binary_expression "param_1[1] != 0" (subscript_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") (< "<") (cast_expression "(uint)param_1[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) () ")")) (; ";")) (} "}"))) (expression_statement "sprintf(local_32,"%lld",param_3,param_4);" (call_expression "sprintf(local_32,"%lld",param_3,param_4)" (identifier "sprintf") (argument_list "(local_32,"%lld",param_3,param_4)" (( "(") (identifier "local_32") (, ",") (string_literal ""%lld"" (" """) (string_content "%lld") (" """)) (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32);" (call_expression "fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32)" (identifier "fprintf") (argument_list "((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],\n            __ptr,local_32)" (( "(") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (, ",") (string_literal ""%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n"" (" """) (string_content "%s") (escape_sequence "\t") (string_content "%s") (escape_sequence "\t") (string_content "0;") (escape_sequence "\"") (escape_sequence "\t") (string_content "kind:v") (escape_sequence "\t") (string_content "type:const %s") (escape_sequence "\t") (string_content "value:%s") (escape_sequence "\n") (" """)) (, ",") (identifier "param_2") (, ",") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (, ",") (identifier "__ptr") (, ",") (identifier "local_32") () ")"))) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

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

{
  char *var_2;
  type_3 var_3;
  char ab [22];
  
  var_2 = var_1((type_4 *)((int)p + 8));
  if (var_2 != (char *)0x0) {
    if (*(int *)((int)p + 4) != 0) {
      var_3 = 0;
      do {
                    /* WARNING: Load size is inaccurate */
        var_3 = var_3 + 1;
        var_4(0x20,*p);
      } while (var_3 < *(type_3 *)((int)p + 4));
    }
    var_5(ab,"%lld",(type_5)val,val._4_4_);
                    /* WARNING: Load size is inaccurate */
    var_6(*p,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",name,*(type_5 *)((int)p + 0x10)
            ,var_2,ab);
    var_7(var_2);
    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: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (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: (subscript_expression argument: (identifier) index: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (identifier) (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) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence)) (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement (number_literal)))) (return_statement (number_literal)))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

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

{
  void *__ptr;
  uint uVar1;
  char local_32 [30];
  undefined4 uStack_14;
  
  uStack_14 = 0x3a979;
  __ptr = (void *)FUN_00036d90();
  if (__ptr != (void *)0x0) {
    if (param_1[1] != 0) {
      uVar1 = 0;
      do {
        uVar1 = uVar1 + 1;
        putc(0x20,(FILE *)*param_1);
      } while (uVar1 < (uint)param_1[1]);
    }
    sprintf(local_32,"%lld",param_3,param_4);
    fprintf((FILE *)*param_1,"%s\t%s\t0;\"\tkind:v\ttype:const %s\tvalue:%s\n",param_2,param_1[4],
            __ptr,local_32);
    free(__ptr);
    return 1;
  }
  return 0;
}

