
/* std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >
   >::do_put(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t,
   void const*) const */

num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> * __thiscall
std::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::do_put
          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,
          undefined4 param_2,undefined4 param_3,undefined3 param_4,int param_5)

{
  uint uVar1;
  undefined4 local_resc;
  undefined4 local_18;
  undefined1 local_14;
  
  uVar1 = *(uint *)(param_5 + 0xc);
  *(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208;
  _M_insert_int<unsigned_long>(&local_18);
  local_resc = CONCAT13(local_14,param_4);
  *(undefined4 *)this = local_18;
  *(uint *)(param_5 + 0xc) = uVar1;
  *(undefined4 *)(this + 4) = local_resc;
  return this;
}



undefined4 *
FUN_00327320(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined3 param_4,
            int param_5)

{
  uint uVar1;
  undefined4 local_resc;
  undefined4 local_18;
  undefined1 local_14;
  
  uVar1 = *(uint *)(param_5 + 0xc);
  *(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208;
  std::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::
  _M_insert_int<unsigned_long>(&local_18);
  local_resc = CONCAT13(local_14,param_4);
  *param_1 = local_18;
  *(uint *)(param_5 + 0xc) = uVar1;
  param_1[1] = local_resc;
  return param_1;
}


lui gp,0x11
addiu gp,gp,0x2eb0
addu gp,gp,t9
addiu sp,sp,-0x40
lw t9,-0x6654(gp)
lw v0,0x58(sp)
sw s0,0x30(sp)
sw s2,0x38(sp)
lw s0,0x50(sp)
sw s1,0x34(sp)
or s1,a0,zero
sw gp,0x20(sp)
addiu a0,sp,0x28
sw ra,0x3c(sp)
lw s2,0xc(s0)
sw v0,0x18(sp)
lw v0,0x54(sp)
sw s0,0x10(sp)
sw a2,0x48(sp)
sw v0,0x14(sp)
li v0,-0x404b
sw a3,0x4c(sp)
and v0,s2,v0
ori v0,v0,0x208
bal 0x0032706c
_sw v0,0xc(s0)
or v0,s1,zero
lbu a0,0x2c(sp)
lw v1,0x28(sp)
lw ra,0x3c(sp)
sb a0,0x4c(sp)
sw v1,0x48(sp)
sw v1,0x0(s1)
sw s2,0xc(s0)
lw v1,0x4c(sp)
lw s2,0x38(sp)
lw s0,0x30(sp)
sw v1,0x4(s1)
lw s1,0x34(sp)
jr ra
_addiu sp,sp,0x40
(translation_unit "undefined4 *\nFUN_00327320(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined3 param_4,\n            int param_5)\n\n{\n  uint uVar1;\n  undefined4 local_resc;\n  undefined4 local_18;\n  undefined1 local_14;\n  \n  uVar1 = *(uint *)(param_5 + 0xc);\n  *(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208;\n  std::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long>(&local_18);\n  local_resc = CONCAT13(local_14,param_4);\n  *param_1 = local_18;\n  *(uint *)(param_5 + 0xc) = uVar1;\n  param_1[1] = local_resc;\n  return param_1;\n}\n\n" (function_definition "undefined4 *\nFUN_00327320(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined3 param_4,\n            int param_5)\n\n{\n  uint uVar1;\n  undefined4 local_resc;\n  undefined4 local_18;\n  undefined1 local_14;\n  \n  uVar1 = *(uint *)(param_5 + 0xc);\n  *(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208;\n  std::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long>(&local_18);\n  local_resc = CONCAT13(local_14,param_4);\n  *param_1 = local_18;\n  *(uint *)(param_5 + 0xc) = uVar1;\n  param_1[1] = local_resc;\n  return param_1;\n}" type_identifier (pointer_declarator "*\nFUN_00327320(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined3 param_4,\n            int param_5)" * (function_declarator "FUN_00327320(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined3 param_4,\n            int param_5)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined3 param_4,\n            int param_5)" ( (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 "undefined3 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) )))) (compound_statement "{\n  uint uVar1;\n  undefined4 local_resc;\n  undefined4 local_18;\n  undefined1 local_14;\n  \n  uVar1 = *(uint *)(param_5 + 0xc);\n  *(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208;\n  std::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long>(&local_18);\n  local_resc = CONCAT13(local_14,param_4);\n  *param_1 = local_18;\n  *(uint *)(param_5 + 0xc) = uVar1;\n  param_1[1] = local_resc;\n  return param_1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 local_resc;" type_identifier identifier ;) (declaration "undefined4 local_18;" type_identifier identifier ;) (declaration "undefined1 local_14;" type_identifier identifier ;) (expression_statement "uVar1 = *(uint *)(param_5 + 0xc);" (assignment_expression "uVar1 = *(uint *)(param_5 + 0xc)" identifier = (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208;" (assignment_expression "*(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208" (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) = (binary_expression "uVar1 & 0xffffbfb5 | 0x208" (binary_expression "uVar1 & 0xffffbfb5" identifier & number_literal) | number_literal)) ;) (labeled_statement "std::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long>(&local_18);" statement_identifier (ERROR "::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std:" : : (comma_expression "num_put<wchar_t,std" (binary_expression "num_put<wchar_t" identifier < identifier) , identifier) : : (comma_expression "ostreambuf_iterator<wchar_t,std" (binary_expression "ostreambuf_iterator<wchar_t" identifier < identifier) , identifier) :) : (expression_statement "char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long>(&local_18);" (binary_expression "char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long>(&local_18)" (binary_expression "char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long" (binary_expression "char_traits<wchar_t>>>::\n  _M_insert_int" identifier < (binary_expression "wchar_t>>>::\n  _M_insert_int" identifier >> (ERROR ">::" > : :) identifier)) < identifier) > (parenthesized_expression "(&local_18)" ( (pointer_expression "&local_18" & identifier) ))) ;)) (expression_statement "local_resc = CONCAT13(local_14,param_4);" (assignment_expression "local_resc = CONCAT13(local_14,param_4)" identifier = (call_expression "CONCAT13(local_14,param_4)" identifier (argument_list "(local_14,param_4)" ( identifier , identifier )))) ;) (expression_statement "*param_1 = local_18;" (assignment_expression "*param_1 = local_18" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*(uint *)(param_5 + 0xc) = uVar1;" (assignment_expression "*(uint *)(param_5 + 0xc) = uVar1" (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1[1] = local_resc;" (assignment_expression "param_1[1] = local_resc" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return param_1;" return identifier ;) })))
(translation_unit "/* std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >\n   >::do_put(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t,\n   void const*) const */\n\nnum_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> * __thiscall\nstd::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::do_put\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          undefined4 param_2,undefined4 param_3,undefined3 param_4,int param_5)\n\n{\n  uint uVar1;\n  undefined4 local_resc;\n  undefined4 local_18;\n  undefined1 local_14;\n  \n  uVar1 = *(uint *)(param_5 + 0xc);\n  *(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208;\n  _M_insert_int<unsigned_long>(&local_18);\n  local_resc = CONCAT13(local_14,param_4);\n  *(undefined4 *)this = local_18;\n  *(uint *)(param_5 + 0xc) = uVar1;\n  *(undefined4 *)(this + 4) = local_resc;\n  return this;\n}\n\n" comment (ERROR "num_put<wchar_t," (binary_expression "num_put<wchar_t" identifier < identifier) ,) (labeled_statement "std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> * __thiscall" statement_identifier (ERROR "::ostreambuf_iterator<wchar_t,std:" : : (comma_expression "ostreambuf_iterator<wchar_t,std" (binary_expression "ostreambuf_iterator<wchar_t" identifier < identifier) , identifier) :) : (expression_statement "char_traits<wchar_t>>> * __thiscall" (binary_expression "char_traits<wchar_t>>> * __thiscall" identifier < (binary_expression "wchar_t>>> * __thiscall" identifier >> (ERROR ">" >) (pointer_expression "* __thiscall" * identifier))) ;)) (labeled_statement "std::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::do_put\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          undefined4 param_2,undefined4 param_3,undefined3 param_4,int param_5)" statement_identifier (ERROR "::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std:" : : (comma_expression "num_put<wchar_t,std" (binary_expression "num_put<wchar_t" identifier < identifier) , identifier) : : (comma_expression "ostreambuf_iterator<wchar_t,std" (binary_expression "ostreambuf_iterator<wchar_t" identifier < identifier) , identifier) :) : (expression_statement "char_traits<wchar_t>>>::do_put\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          undefined4 param_2,undefined4 param_3,undefined3 param_4,int param_5)" (binary_expression "char_traits<wchar_t>>>::do_put\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          undefined4 param_2,undefined4 param_3,undefined3 param_4,int param_5)" identifier < (binary_expression "wchar_t>>>::do_put\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          undefined4 param_2,undefined4 param_3,undefined3 param_4,int param_5)" identifier >> (ERROR ">::" > : :) (call_expression "do_put\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          undefined4 param_2,undefined4 param_3,undefined3 param_4,int param_5)" identifier (argument_list "(num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          undefined4 param_2,undefined4 param_3,undefined3 param_4,int param_5)" ( (binary_expression "num_put<wchar_t" identifier < identifier) , (ERROR "std::" identifier : :) (binary_expression "ostreambuf_iterator<wchar_t" identifier < identifier) , (ERROR "std::" identifier : :) (binary_expression "char_traits<wchar_t>>> *this" identifier < (binary_expression "wchar_t>>> *this" identifier >> (ERROR ">" >) (pointer_expression "*this" * identifier))) , identifier (ERROR "param_2" identifier) , identifier (ERROR "param_3" identifier) , identifier (ERROR "param_4" identifier) , (ERROR "int" identifier) identifier ))))) ;)) (compound_statement "{\n  uint uVar1;\n  undefined4 local_resc;\n  undefined4 local_18;\n  undefined1 local_14;\n  \n  uVar1 = *(uint *)(param_5 + 0xc);\n  *(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208;\n  _M_insert_int<unsigned_long>(&local_18);\n  local_resc = CONCAT13(local_14,param_4);\n  *(undefined4 *)this = local_18;\n  *(uint *)(param_5 + 0xc) = uVar1;\n  *(undefined4 *)(this + 4) = local_resc;\n  return this;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 local_resc;" type_identifier identifier ;) (declaration "undefined4 local_18;" type_identifier identifier ;) (declaration "undefined1 local_14;" type_identifier identifier ;) (expression_statement "uVar1 = *(uint *)(param_5 + 0xc);" (assignment_expression "uVar1 = *(uint *)(param_5 + 0xc)" identifier = (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208;" (assignment_expression "*(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208" (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) = (binary_expression "uVar1 & 0xffffbfb5 | 0x208" (binary_expression "uVar1 & 0xffffbfb5" identifier & number_literal) | number_literal)) ;) (expression_statement "_M_insert_int<unsigned_long>(&local_18);" (binary_expression "_M_insert_int<unsigned_long>(&local_18)" (binary_expression "_M_insert_int<unsigned_long" identifier < identifier) > (parenthesized_expression "(&local_18)" ( (pointer_expression "&local_18" & identifier) ))) ;) (expression_statement "local_resc = CONCAT13(local_14,param_4);" (assignment_expression "local_resc = CONCAT13(local_14,param_4)" identifier = (call_expression "CONCAT13(local_14,param_4)" identifier (argument_list "(local_14,param_4)" ( identifier , identifier )))) ;) (expression_statement "*(undefined4 *)this = local_18;" (assignment_expression "*(undefined4 *)this = local_18" (pointer_expression "*(undefined4 *)this" * (cast_expression "(undefined4 *)this" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(uint *)(param_5 + 0xc) = uVar1;" (assignment_expression "*(uint *)(param_5 + 0xc) = uVar1" (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(this + 4) = local_resc;" (assignment_expression "*(undefined4 *)(this + 4) = local_resc" (pointer_expression "*(undefined4 *)(this + 4)" * (cast_expression "(undefined4 *)(this + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) (return_statement "return this;" return identifier ;) }))
(translation_unit "undefined4 *\nFUN_00327320(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined3 param_4,\n            int param_5)\n\n{\n  uint uVar1;\n  undefined4 local_resc;\n  undefined4 local_18;\n  undefined1 local_14;\n  \n  uVar1 = *(uint *)(param_5 + 0xc);\n  *(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208;\n  std::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long>(&local_18);\n  local_resc = CONCAT13(local_14,param_4);\n  *param_1 = local_18;\n  *(uint *)(param_5 + 0xc) = uVar1;\n  param_1[1] = local_resc;\n  return param_1;\n}\n\n" (function_definition "undefined4 *\nFUN_00327320(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined3 param_4,\n            int param_5)\n\n{\n  uint uVar1;\n  undefined4 local_resc;\n  undefined4 local_18;\n  undefined1 local_14;\n  \n  uVar1 = *(uint *)(param_5 + 0xc);\n  *(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208;\n  std::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long>(&local_18);\n  local_resc = CONCAT13(local_14,param_4);\n  *param_1 = local_18;\n  *(uint *)(param_5 + 0xc) = uVar1;\n  param_1[1] = local_resc;\n  return param_1;\n}" type_identifier (pointer_declarator "*\nFUN_00327320(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined3 param_4,\n            int param_5)" * (function_declarator "FUN_00327320(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined3 param_4,\n            int param_5)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined3 param_4,\n            int param_5)" ( (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 "undefined3 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) )))) (compound_statement "{\n  uint uVar1;\n  undefined4 local_resc;\n  undefined4 local_18;\n  undefined1 local_14;\n  \n  uVar1 = *(uint *)(param_5 + 0xc);\n  *(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208;\n  std::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long>(&local_18);\n  local_resc = CONCAT13(local_14,param_4);\n  *param_1 = local_18;\n  *(uint *)(param_5 + 0xc) = uVar1;\n  param_1[1] = local_resc;\n  return param_1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 local_resc;" type_identifier identifier ;) (declaration "undefined4 local_18;" type_identifier identifier ;) (declaration "undefined1 local_14;" type_identifier identifier ;) (expression_statement "uVar1 = *(uint *)(param_5 + 0xc);" (assignment_expression "uVar1 = *(uint *)(param_5 + 0xc)" identifier = (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208;" (assignment_expression "*(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208" (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) = (binary_expression "uVar1 & 0xffffbfb5 | 0x208" (binary_expression "uVar1 & 0xffffbfb5" identifier & number_literal) | number_literal)) ;) (labeled_statement "std::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long>(&local_18);" statement_identifier (ERROR "::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std:" : : (comma_expression "num_put<wchar_t,std" (binary_expression "num_put<wchar_t" identifier < identifier) , identifier) : : (comma_expression "ostreambuf_iterator<wchar_t,std" (binary_expression "ostreambuf_iterator<wchar_t" identifier < identifier) , identifier) :) : (expression_statement "char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long>(&local_18);" (binary_expression "char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long>(&local_18)" (binary_expression "char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long" (binary_expression "char_traits<wchar_t>>>::\n  _M_insert_int" identifier < (binary_expression "wchar_t>>>::\n  _M_insert_int" identifier >> (ERROR ">::" > : :) identifier)) < identifier) > (parenthesized_expression "(&local_18)" ( (pointer_expression "&local_18" & identifier) ))) ;)) (expression_statement "local_resc = CONCAT13(local_14,param_4);" (assignment_expression "local_resc = CONCAT13(local_14,param_4)" identifier = (call_expression "CONCAT13(local_14,param_4)" identifier (argument_list "(local_14,param_4)" ( identifier , identifier )))) ;) (expression_statement "*param_1 = local_18;" (assignment_expression "*param_1 = local_18" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*(uint *)(param_5 + 0xc) = uVar1;" (assignment_expression "*(uint *)(param_5 + 0xc) = uVar1" (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "param_1[1] = local_resc;" (assignment_expression "param_1[1] = local_resc" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return param_1;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;) (labeled_statement statement_identifier (ERROR : : (comma_expression (binary_expression IDENT < IDENT) , IDENT) : : (comma_expression (binary_expression IDENT < IDENT) , IDENT) :) : (expression_statement (binary_expression (binary_expression (binary_expression IDENT < (binary_expression IDENT >> (ERROR > : :) IDENT)) < IDENT) > (parenthesized_expression ( (pointer_expression & IDENT) ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return IDENT ;) })))
(function_definition "undefined4 *\nFUN_00327320(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined3 param_4,\n            int param_5)\n\n{\n  uint uVar1;\n  undefined4 local_resc;\n  undefined4 local_18;\n  undefined1 local_14;\n  \n  uVar1 = *(uint *)(param_5 + 0xc);\n  *(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208;\n  std::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long>(&local_18);\n  local_resc = CONCAT13(local_14,param_4);\n  *param_1 = local_18;\n  *(uint *)(param_5 + 0xc) = uVar1;\n  param_1[1] = local_resc;\n  return param_1;\n}" (type_identifier "undefined4") (pointer_declarator "*\nFUN_00327320(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined3 param_4,\n            int param_5)" (* "*") (function_declarator "FUN_00327320(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined3 param_4,\n            int param_5)" (identifier "FUN_00327320") (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined3 param_4,\n            int param_5)" (( "(") (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 "undefined3 param_4" (type_identifier "undefined3") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) () ")")))) (compound_statement "{\n  uint uVar1;\n  undefined4 local_resc;\n  undefined4 local_18;\n  undefined1 local_14;\n  \n  uVar1 = *(uint *)(param_5 + 0xc);\n  *(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208;\n  std::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long>(&local_18);\n  local_resc = CONCAT13(local_14,param_4);\n  *param_1 = local_18;\n  *(uint *)(param_5 + 0xc) = uVar1;\n  param_1[1] = local_resc;\n  return param_1;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "undefined4 local_resc;" (type_identifier "undefined4") (identifier "local_resc") (; ";")) (declaration "undefined4 local_18;" (type_identifier "undefined4") (identifier "local_18") (; ";")) (declaration "undefined1 local_14;" (type_identifier "undefined1") (identifier "local_14") (; ";")) (expression_statement "uVar1 = *(uint *)(param_5 + 0xc);" (assignment_expression "uVar1 = *(uint *)(param_5 + 0xc)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(param_5 + 0xc)" (* "*") (cast_expression "(uint *)(param_5 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208;" (assignment_expression "*(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208" (pointer_expression "*(uint *)(param_5 + 0xc)" (* "*") (cast_expression "(uint *)(param_5 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "uVar1 & 0xffffbfb5 | 0x208" (binary_expression "uVar1 & 0xffffbfb5" (identifier "uVar1") (& "&") (number_literal "0xffffbfb5")) (| "|") (number_literal "0x208"))) (; ";")) (labeled_statement "std::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long>(&local_18);" (statement_identifier "std") (ERROR "::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std:" (: ":") (: ":") (comma_expression "num_put<wchar_t,std" (binary_expression "num_put<wchar_t" (identifier "num_put") (< "<") (identifier "wchar_t")) (, ",") (identifier "std")) (: ":") (: ":") (comma_expression "ostreambuf_iterator<wchar_t,std" (binary_expression "ostreambuf_iterator<wchar_t" (identifier "ostreambuf_iterator") (< "<") (identifier "wchar_t")) (, ",") (identifier "std")) (: ":")) (: ":") (expression_statement "char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long>(&local_18);" (binary_expression "char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long>(&local_18)" (binary_expression "char_traits<wchar_t>>>::\n  _M_insert_int<unsigned_long" (binary_expression "char_traits<wchar_t>>>::\n  _M_insert_int" (identifier "char_traits") (< "<") (binary_expression "wchar_t>>>::\n  _M_insert_int" (identifier "wchar_t") (>> ">>") (ERROR ">::" (> ">") (: ":") (: ":")) (identifier "_M_insert_int"))) (< "<") (identifier "unsigned_long")) (> ">") (parenthesized_expression "(&local_18)" (( "(") (pointer_expression "&local_18" (& "&") (identifier "local_18")) () ")"))) (; ";"))) (expression_statement "local_resc = CONCAT13(local_14,param_4);" (assignment_expression "local_resc = CONCAT13(local_14,param_4)" (identifier "local_resc") (= "=") (call_expression "CONCAT13(local_14,param_4)" (identifier "CONCAT13") (argument_list "(local_14,param_4)" (( "(") (identifier "local_14") (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "*param_1 = local_18;" (assignment_expression "*param_1 = local_18" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "local_18")) (; ";")) (expression_statement "*(uint *)(param_5 + 0xc) = uVar1;" (assignment_expression "*(uint *)(param_5 + 0xc) = uVar1" (pointer_expression "*(uint *)(param_5 + 0xc)" (* "*") (cast_expression "(uint *)(param_5 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "param_1[1] = local_resc;" (assignment_expression "param_1[1] = local_resc" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_resc")) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))

/* std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >
   >::do_put(std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, wchar_t,
   void const*) const */

var_4<var_2,std::var_5<var_2,std::var_1<var_2>>> * __thiscall
std::var_4<var_2,std::var_5<var_2,std::var_1<var_2>>>::var_3
          (var_4<var_2,std::var_5<var_2,std::var_1<var_2>>> *var_11,
          type_2 param_2,type_2 param_3,undefined3 param_4,int var_6)

{
  type_1 var_7;
  type_2 local_resc;
  type_2 local_18;
  type_3 local_14;
  
  var_7 = *(type_1 *)(var_6 + 0xc);
  *(type_1 *)(var_6 + 0xc) = var_7 & 0xffffbfb5 | 0x208;
  var_8<var_9>(&local_18);
  local_resc = var_10(local_14,param_4);
  *(type_2 *)var_11 = local_18;
  *(type_1 *)(var_6 + 0xc) = var_7;
  *(type_2 *)(var_11 + 4) = local_resc;
  return var_11;
}


(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator 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)) (parameter_declaration type: (primitive_type) declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) (expression_statement (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) (ERROR) right: (identifier))) right: (identifier)) right: (parenthesized_expression (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement (identifier)))))

undefined4 *
MASKED(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined3 param_4,
            int param_5)

{
  uint uVar1;
  undefined4 local_resc;
  undefined4 local_18;
  undefined1 local_14;
  
  uVar1 = *(uint *)(param_5 + 0xc);
  *(uint *)(param_5 + 0xc) = uVar1 & 0xffffbfb5 | 0x208;
  std::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::
  _M_insert_int<unsigned_long>(&local_18);
  local_resc = CONCAT13(local_14,param_4);
  *param_1 = local_18;
  *(uint *)(param_5 + 0xc) = uVar1;
  param_1[1] = local_resc;
  return param_1;
}

