
/* std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >
   >::_M_group_int(char const*, unsigned int, wchar_t, std::ios_base&, wchar_t*, wchar_t*, int&)
   const */

void __thiscall
std::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::_M_group_int
          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,
          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,
          wchar_t *param_6,int *param_7)

{
  wchar_t *pwVar1;
  
  pwVar1 = __add_grouping<wchar_t>(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2);
  *param_7 = (int)pwVar1 - (int)param_5 >> 2;
  return;
}



/* std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >
   >::_M_group_int(char const*, unsigned int, wchar_t, std::ios_base&, wchar_t*, wchar_t*, int&)
   const */

void __thiscall
std::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::_M_group_int
          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,
          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,
          wchar_t *param_6,int *param_7)

{
  wchar_t *pwVar1;
  
  pwVar1 = __add_grouping<wchar_t>(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2);
  *param_7 = (int)pwVar1 - (int)param_5 >> 2;
  return;
}


lui gp,0x13
addiu gp,gp,-0x6cf0
addu gp,gp,t9
addiu sp,sp,-0x30
lw t9,-0x62a0(gp)
or v1,a3,zero
or a3,a2,zero
sw s1,0x28(sp)
or a2,a1,zero
lw s1,0x4c(sp)
or a1,v1,zero
lw v0,0x48(sp)
sw s0,0x24(sp)
sw ra,0x2c(sp)
lw v1,0x0(s1)
lw s0,0x44(sp)
sw v0,0x10(sp)
sll v1,v1,0x2
sw gp,0x18(sp)
or a0,s0,zero
addu v0,v0,v1
bal 0x0039fc64
_sw v0,0x14(sp)
subu v0,v0,s0
lw ra,0x2c(sp)
lw s0,0x24(sp)
sra v0,v0,0x2
sw v0,0x0(s1)
lw s1,0x28(sp)
jr ra
_addiu sp,sp,0x30
(translation_unit "/* std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >\n   >::_M_group_int(char const*, unsigned int, wchar_t, std::ios_base&, wchar_t*, wchar_t*, int&)\n   const */\n\nvoid __thiscall\nstd::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::_M_group_int\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,\n          wchar_t *param_6,int *param_7)\n\n{\n  wchar_t *pwVar1;\n  \n  pwVar1 = __add_grouping<wchar_t>(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2);\n  *param_7 = (int)pwVar1 - (int)param_5 >> 2;\n  return;\n}\n\n" comment (declaration "void __thiscall\nstd::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::_M_group_int\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,\n          wchar_t *param_6,int *param_7)\n\n{\n  wchar_t *pwVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::num_put<" identifier : : identifier <) identifier , (ERROR "std::ostreambuf_iterator<" identifier : : identifier <) identifier , (ERROR "std::char_traits<wchar_t>>>::_M_group_int\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,\n          wchar_t *param_6,int *param_7)\n\n{\n  wchar_t" identifier : : identifier < identifier >> > : : (function_declarator "_M_group_int\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,\n          wchar_t *param_6,int *param_7)" identifier (parameter_list "(num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,\n          wchar_t *param_6,int *param_7)" ( (parameter_declaration "num_put<wchar_t" type_identifier (ERROR "<" <) identifier) , (parameter_declaration "std::ostreambuf_iterator<wchar_t" type_identifier (ERROR "::ostreambuf_iterator<" : : identifier <) identifier) , (parameter_declaration "std::char_traits<wchar_t>>> *this" type_identifier (ERROR "::char_traits<wchar_t>>>" : : identifier < identifier >> >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "wchar_t param_3" type_identifier identifier) , (parameter_declaration "ios_base *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "wchar_t *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "wchar_t *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "int *param_7" primitive_type (pointer_declarator "*param_7" * identifier)) ))) { identifier) (pointer_declarator "*pwVar1" * identifier) ;) (expression_statement "pwVar1 = __add_grouping<wchar_t>(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2);" (assignment_expression "pwVar1 = __add_grouping<wchar_t>(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2)" identifier = (binary_expression "__add_grouping<wchar_t>(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2)" (binary_expression "__add_grouping<wchar_t" identifier < identifier) > (parenthesized_expression "(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2)" ( (comma_expression "param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2" identifier , (comma_expression "param_3,param_1,param_2,param_6,param_6 + *param_7 * 2" identifier , (comma_expression "param_1,param_2,param_6,param_6 + *param_7 * 2" identifier , (comma_expression "param_2,param_6,param_6 + *param_7 * 2" identifier , (comma_expression "param_6,param_6 + *param_7 * 2" identifier , (binary_expression "param_6 + *param_7 * 2" identifier + (binary_expression "*param_7 * 2" (pointer_expression "*param_7" * identifier) * number_literal))))))) )))) ;) (expression_statement "*param_7 = (int)pwVar1 - (int)param_5 >> 2;" (assignment_expression "*param_7 = (int)pwVar1 - (int)param_5 >> 2" (pointer_expression "*param_7" * identifier) = (binary_expression "(int)pwVar1 - (int)param_5 >> 2" (binary_expression "(int)pwVar1 - (int)param_5" (cast_expression "(int)pwVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "/* std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >\n   >::_M_group_int(char const*, unsigned int, wchar_t, std::ios_base&, wchar_t*, wchar_t*, int&)\n   const */\n\nvoid __thiscall\nstd::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::_M_group_int\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,\n          wchar_t *param_6,int *param_7)\n\n{\n  wchar_t *pwVar1;\n  \n  pwVar1 = __add_grouping<wchar_t>(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2);\n  *param_7 = (int)pwVar1 - (int)param_5 >> 2;\n  return;\n}\n\n" comment (declaration "void __thiscall\nstd::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::_M_group_int\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,\n          wchar_t *param_6,int *param_7)\n\n{\n  wchar_t *pwVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::num_put<" identifier : : identifier <) identifier , (ERROR "std::ostreambuf_iterator<" identifier : : identifier <) identifier , (ERROR "std::char_traits<wchar_t>>>::_M_group_int\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,\n          wchar_t *param_6,int *param_7)\n\n{\n  wchar_t" identifier : : identifier < identifier >> > : : (function_declarator "_M_group_int\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,\n          wchar_t *param_6,int *param_7)" identifier (parameter_list "(num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,\n          wchar_t *param_6,int *param_7)" ( (parameter_declaration "num_put<wchar_t" type_identifier (ERROR "<" <) identifier) , (parameter_declaration "std::ostreambuf_iterator<wchar_t" type_identifier (ERROR "::ostreambuf_iterator<" : : identifier <) identifier) , (parameter_declaration "std::char_traits<wchar_t>>> *this" type_identifier (ERROR "::char_traits<wchar_t>>>" : : identifier < identifier >> >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "wchar_t param_3" type_identifier identifier) , (parameter_declaration "ios_base *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "wchar_t *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "wchar_t *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "int *param_7" primitive_type (pointer_declarator "*param_7" * identifier)) ))) { identifier) (pointer_declarator "*pwVar1" * identifier) ;) (expression_statement "pwVar1 = __add_grouping<wchar_t>(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2);" (assignment_expression "pwVar1 = __add_grouping<wchar_t>(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2)" identifier = (binary_expression "__add_grouping<wchar_t>(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2)" (binary_expression "__add_grouping<wchar_t" identifier < identifier) > (parenthesized_expression "(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2)" ( (comma_expression "param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2" identifier , (comma_expression "param_3,param_1,param_2,param_6,param_6 + *param_7 * 2" identifier , (comma_expression "param_1,param_2,param_6,param_6 + *param_7 * 2" identifier , (comma_expression "param_2,param_6,param_6 + *param_7 * 2" identifier , (comma_expression "param_6,param_6 + *param_7 * 2" identifier , (binary_expression "param_6 + *param_7 * 2" identifier + (binary_expression "*param_7 * 2" (pointer_expression "*param_7" * identifier) * number_literal))))))) )))) ;) (expression_statement "*param_7 = (int)pwVar1 - (int)param_5 >> 2;" (assignment_expression "*param_7 = (int)pwVar1 - (int)param_5 >> 2" (pointer_expression "*param_7" * identifier) = (binary_expression "(int)pwVar1 - (int)param_5 >> 2" (binary_expression "(int)pwVar1 - (int)param_5" (cast_expression "(int)pwVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void __thiscall\nstd::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::_M_group_int\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,\n          wchar_t *param_6,int *param_7)\n\n{\n  wchar_t *pwVar1;\n  \n  pwVar1 = __add_grouping<wchar_t>(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2);\n  *param_7 = (int)pwVar1 - (int)param_5 >> 2;\n  return;\n}\n\n" (declaration "void __thiscall\nstd::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::_M_group_int\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,\n          wchar_t *param_6,int *param_7)\n\n{\n  wchar_t *pwVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::num_put<" identifier : : identifier <) identifier , (ERROR "std::ostreambuf_iterator<" identifier : : identifier <) identifier , (ERROR "std::char_traits<wchar_t>>>::_M_group_int\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,\n          wchar_t *param_6,int *param_7)\n\n{\n  wchar_t" identifier : : identifier < identifier >> > : : (function_declarator "_M_group_int\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,\n          wchar_t *param_6,int *param_7)" identifier (parameter_list "(num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,\n          wchar_t *param_6,int *param_7)" ( (parameter_declaration "num_put<wchar_t" type_identifier (ERROR "<" <) identifier) , (parameter_declaration "std::ostreambuf_iterator<wchar_t" type_identifier (ERROR "::ostreambuf_iterator<" : : identifier <) identifier) , (parameter_declaration "std::char_traits<wchar_t>>> *this" type_identifier (ERROR "::char_traits<wchar_t>>>" : : identifier < identifier >> >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "wchar_t param_3" type_identifier identifier) , (parameter_declaration "ios_base *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "wchar_t *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "wchar_t *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "int *param_7" primitive_type (pointer_declarator "*param_7" * identifier)) ))) { identifier) (pointer_declarator "*pwVar1" * identifier) ;) (expression_statement "pwVar1 = __add_grouping<wchar_t>(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2);" (assignment_expression "pwVar1 = __add_grouping<wchar_t>(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2)" identifier = (binary_expression "__add_grouping<wchar_t>(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2)" (binary_expression "__add_grouping<wchar_t" identifier < identifier) > (parenthesized_expression "(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2)" ( (comma_expression "param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2" identifier , (comma_expression "param_3,param_1,param_2,param_6,param_6 + *param_7 * 2" identifier , (comma_expression "param_1,param_2,param_6,param_6 + *param_7 * 2" identifier , (comma_expression "param_2,param_6,param_6 + *param_7 * 2" identifier , (comma_expression "param_6,param_6 + *param_7 * 2" identifier , (binary_expression "param_6 + *param_7 * 2" identifier + (binary_expression "*param_7 * 2" (pointer_expression "*param_7" * identifier) * number_literal))))))) )))) ;) (expression_statement "*param_7 = (int)pwVar1 - (int)param_5 >> 2;" (assignment_expression "*param_7 = (int)pwVar1 - (int)param_5 >> 2" (pointer_expression "*param_7" * identifier) = (binary_expression "(int)pwVar1 - (int)param_5 >> 2" (binary_expression "(int)pwVar1 - (int)param_5" (cast_expression "(int)pwVar1" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT <) IDENT , (ERROR IDENT : : IDENT <) IDENT , (ERROR IDENT : : IDENT < IDENT >> > : : (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (ERROR <) IDENT) , (parameter_declaration TYPE (ERROR : : IDENT <) IDENT) , (parameter_declaration TYPE (ERROR : : IDENT < IDENT >> >) (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) { IDENT) (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT < IDENT) > (parenthesized_expression ( (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , (binary_expression IDENT + (binary_expression (pointer_expression * IDENT) * LIT))))))) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT)) ;) (return_statement return ;) (ERROR }))
(declaration "void __thiscall\nstd::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::_M_group_int\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,\n          wchar_t *param_6,int *param_7)\n\n{\n  wchar_t *pwVar1;" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "std::num_put<" (identifier "std") (: ":") (: ":") (identifier "num_put") (< "<")) (identifier "wchar_t") (, ",") (ERROR "std::ostreambuf_iterator<" (identifier "std") (: ":") (: ":") (identifier "ostreambuf_iterator") (< "<")) (identifier "wchar_t") (, ",") (ERROR "std::char_traits<wchar_t>>>::_M_group_int\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,\n          wchar_t *param_6,int *param_7)\n\n{\n  wchar_t" (identifier "std") (: ":") (: ":") (identifier "char_traits") (< "<") (identifier "wchar_t") (>> ">>") (> ">") (: ":") (: ":") (function_declarator "_M_group_int\n          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,\n          wchar_t *param_6,int *param_7)" (identifier "_M_group_int") (parameter_list "(num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,\n          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,\n          wchar_t *param_6,int *param_7)" (( "(") (parameter_declaration "num_put<wchar_t" (type_identifier "num_put") (ERROR "<" (< "<")) (identifier "wchar_t")) (, ",") (parameter_declaration "std::ostreambuf_iterator<wchar_t" (type_identifier "std") (ERROR "::ostreambuf_iterator<" (: ":") (: ":") (identifier "ostreambuf_iterator") (< "<")) (identifier "wchar_t")) (, ",") (parameter_declaration "std::char_traits<wchar_t>>> *this" (type_identifier "std") (ERROR "::char_traits<wchar_t>>>" (: ":") (: ":") (identifier "char_traits") (< "<") (identifier "wchar_t") (>> ">>") (> ">")) (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "wchar_t param_3" (type_identifier "wchar_t") (identifier "param_3")) (, ",") (parameter_declaration "ios_base *param_4" (type_identifier "ios_base") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "wchar_t *param_5" (type_identifier "wchar_t") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "wchar_t *param_6" (type_identifier "wchar_t") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "int *param_7" (primitive_type "int") (pointer_declarator "*param_7" (* "*") (identifier "param_7"))) () ")"))) ({ "{") (identifier "wchar_t")) (pointer_declarator "*pwVar1" (* "*") (identifier "pwVar1")) (; ";")) (expression_statement "pwVar1 = __add_grouping<wchar_t>(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2);" (assignment_expression "pwVar1 = __add_grouping<wchar_t>(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2)" (identifier "pwVar1") (= "=") (binary_expression "__add_grouping<wchar_t>(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2)" (binary_expression "__add_grouping<wchar_t" (identifier "__add_grouping") (< "<") (identifier "wchar_t")) (> ">") (parenthesized_expression "(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2)" (( "(") (comma_expression "param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2" (identifier "param_5") (, ",") (comma_expression "param_3,param_1,param_2,param_6,param_6 + *param_7 * 2" (identifier "param_3") (, ",") (comma_expression "param_1,param_2,param_6,param_6 + *param_7 * 2" (identifier "param_1") (, ",") (comma_expression "param_2,param_6,param_6 + *param_7 * 2" (identifier "param_2") (, ",") (comma_expression "param_6,param_6 + *param_7 * 2" (identifier "param_6") (, ",") (binary_expression "param_6 + *param_7 * 2" (identifier "param_6") (+ "+") (binary_expression "*param_7 * 2" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (* "*") (number_literal "2")))))))) () ")")))) (; ";")) (expression_statement "*param_7 = (int)pwVar1 - (int)param_5 >> 2;" (assignment_expression "*param_7 = (int)pwVar1 - (int)param_5 >> 2" (pointer_expression "*param_7" (* "*") (identifier "param_7")) (= "=") (binary_expression "(int)pwVar1 - (int)param_5 >> 2" (binary_expression "(int)pwVar1 - (int)param_5" (cast_expression "(int)pwVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pwVar1")) (- "-") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5"))) (>> ">>") (number_literal "2"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))

/* std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >
   >::_M_group_int(char const*, unsigned int, wchar_t, std::ios_base&, wchar_t*, wchar_t*, int&)
   const */

void __thiscall
std::num_put<var_2,std::ostreambuf_iterator<var_2,std::char_traits<var_2>>>::_M_group_int
          (num_put<var_2,std::ostreambuf_iterator<var_2,std::char_traits<var_2>>> *this,
          char *param_1,uint param_2,var_2 param_3,ios_base *param_4,var_2 *param_5,
          var_2 *var_3,int *param_7)

{
  var_2 *pwVar1;
  
  pwVar1 = var_1<var_2>(param_5,param_3,param_1,param_2,var_3,var_3 + *param_7 * 2);
  *param_7 = (int)pwVar1 - (int)param_5 >> 2;
  return;
}


(translation_unit (declaration type: (primitive_type) declarator: (ms_call_modifier) (ERROR (identifier) (identifier)) declarator: (identifier) (ERROR (identifier) (identifier)) declarator: (identifier) (ERROR (identifier) (identifier) (identifier) (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) (ERROR) declarator: (identifier)) (parameter_declaration type: (type_identifier) (ERROR (identifier)) declarator: (identifier)) (parameter_declaration type: (type_identifier) (ERROR (identifier) (identifier)) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) 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: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) (identifier)) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))) (return_statement) (ERROR))

/* std::num_put<wchar_t, std::ostreambuf_iterator<wchar_t, std::char_traits<wchar_t> >
   >::MASKED(char const*, unsigned int, wchar_t, std::ios_base&, wchar_t*, wchar_t*, int&)
   const */

void __thiscall
std::num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::MASKED
          (num_put<wchar_t,std::ostreambuf_iterator<wchar_t,std::char_traits<wchar_t>>> *this,
          char *param_1,uint param_2,wchar_t param_3,ios_base *param_4,wchar_t *param_5,
          wchar_t *param_6,int *param_7)

{
  wchar_t *pwVar1;
  
  pwVar1 = __add_grouping<wchar_t>(param_5,param_3,param_1,param_2,param_6,param_6 + *param_7 * 2);
  *param_7 = (int)pwVar1 - (int)param_5 >> 2;
  return;
}

