
/* std::__facet_shims::(anonymous
   namespace)::money_get_shim<wchar_t>::do_get(std::istreambuf_iterator<wchar_t,
   std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, bool,
   std::ios_base&, std::_Ios_Iostate&, long double&) const */

undefined4 *
std::__facet_shims::(anonymous_namespace)::money_get_shim<wchar_t>::do_get
          (undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,
          undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9,undefined8 *param_10
          )

{
  undefined8 local_20;
  int local_18 [2];
  undefined4 local_10;
  undefined4 local_c;
  
  local_18[0] = 0;
  __money_get<wchar_t>
            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,
             param_8,local_18,&local_20,0);
  if (local_18[0] == 0) {
    *param_1 = local_10;
    *param_10 = local_20;
    param_1[1] = local_c;
    return param_1;
  }
  *param_9 = local_18[0];
  *param_1 = local_10;
  param_1[1] = local_c;
  return param_1;
}



undefined4 *
FUN_0037b670(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,
            undefined4 param_5,undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9
            ,undefined8 *param_10)

{
  undefined8 local_20;
  int local_18 [2];
  undefined4 local_10;
  undefined4 local_c;
  
  local_18[0] = 0;
  std::__facet_shims::__money_get<wchar_t>
            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,
             param_8,local_18,&local_20,0);
  if (local_18[0] == 0) {
    *param_1 = local_10;
    *param_10 = local_20;
    param_1[1] = local_c;
    return param_1;
  }
  *param_9 = local_18[0];
  *param_1 = local_10;
  param_1[1] = local_c;
  return param_1;
}


lui gp,0x15
addiu gp,gp,-0x2430
addu gp,gp,t9
addiu sp,sp,-0x58
lw v0,0x8(a1)
or a1,zero,zero
lw t9,-0x3c74(gp)
sw a2,0x60(sp)
sll a1,a1,0x18
sw a3,0x64(sp)
sw a3,0x10(sp)
or a3,a2,zero
or a2,v0,zero
sw s0,0x50(sp)
addiu v0,sp,0x38
sw gp,0x30(sp)
or s0,a0,zero
sw ra,0x54(sp)
sw v0,0x28(sp)
addiu v0,sp,0x40
addiu a0,sp,0x48
sw zero,0x2c(sp)
sw v0,0x24(sp)
lw v0,0x74(sp)
sw zero,0x40(sp)
sw v0,0x20(sp)
lbu v0,0x73(sp)
sw v0,0x1c(sp)
lw v0,0x68(sp)
sw v0,0x14(sp)
lw v0,0x6c(sp)
bal 0x00387008
_sw v0,0x18(sp)
lw v1,0x48(sp)
lw v0,0x40(sp)
sw v1,0x60(sp)
lw v1,0x4c(sp)
bne v0,zero,0x0037b73c
_sw v1,0x64(sp)
ldc1 f0,0x38(sp)
lw v1,0x60(sp)
lw v0,0x7c(sp)
lw ra,0x54(sp)
sw v1,0x0(s0)
lw v1,0x64(sp)
sdc1 f0,0x0(v0)
or v0,s0,zero
sw v1,0x4(s0)
lw s0,0x50(sp)
jr ra
_addiu sp,sp,0x58
lw v1,0x78(sp)
lw ra,0x54(sp)
sw v0,0x0(v1)
or v0,s0,zero
lw v1,0x60(sp)
sw v1,0x0(s0)
lw v1,0x64(sp)
sw v1,0x4(s0)
lw s0,0x50(sp)
jr ra
_addiu sp,sp,0x58
(translation_unit "undefined4 *\nFUN_0037b670(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9\n            ,undefined8 *param_10)\n\n{\n  undefined8 local_20;\n  int local_18 [2];\n  undefined4 local_10;\n  undefined4 local_c;\n  \n  local_18[0] = 0;\n  std::__facet_shims::__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);\n  if (local_18[0] == 0) {\n    *param_1 = local_10;\n    *param_10 = local_20;\n    param_1[1] = local_c;\n    return param_1;\n  }\n  *param_9 = local_18[0];\n  *param_1 = local_10;\n  param_1[1] = local_c;\n  return param_1;\n}\n\n" (function_definition "undefined4 *\nFUN_0037b670(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9\n            ,undefined8 *param_10)\n\n{\n  undefined8 local_20;\n  int local_18 [2];\n  undefined4 local_10;\n  undefined4 local_c;\n  \n  local_18[0] = 0;\n  std::__facet_shims::__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);\n  if (local_18[0] == 0) {\n    *param_1 = local_10;\n    *param_10 = local_20;\n    param_1[1] = local_c;\n    return param_1;\n  }\n  *param_9 = local_18[0];\n  *param_1 = local_10;\n  param_1[1] = local_c;\n  return param_1;\n}" type_identifier (pointer_declarator "*\nFUN_0037b670(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9\n            ,undefined8 *param_10)" * (function_declarator "FUN_0037b670(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9\n            ,undefined8 *param_10)" identifier (parameter_list "(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9\n            ,undefined8 *param_10)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined1 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "int *param_9" primitive_type (pointer_declarator "*param_9" * identifier)) , (parameter_declaration "undefined8 *param_10" type_identifier (pointer_declarator "*param_10" * identifier)) )))) (compound_statement "{\n  undefined8 local_20;\n  int local_18 [2];\n  undefined4 local_10;\n  undefined4 local_c;\n  \n  local_18[0] = 0;\n  std::__facet_shims::__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);\n  if (local_18[0] == 0) {\n    *param_1 = local_10;\n    *param_10 = local_20;\n    param_1[1] = local_c;\n    return param_1;\n  }\n  *param_9 = local_18[0];\n  *param_1 = local_10;\n  param_1[1] = local_c;\n  return param_1;\n}" { (declaration "undefined8 local_20;" type_identifier identifier ;) (declaration "int local_18 [2];" primitive_type (array_declarator "local_18 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_10;" type_identifier identifier ;) (declaration "undefined4 local_c;" type_identifier identifier ;) (expression_statement "local_18[0] = 0;" (assignment_expression "local_18[0] = 0" (subscript_expression "local_18[0]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "std::__facet_shims::__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);" statement_identifier : (ERROR ":" :) (labeled_statement "__facet_shims::__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);" statement_identifier : (ERROR ":" :) (expression_statement "__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);" (binary_expression "__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0)" (binary_expression "__money_get<wchar_t" identifier < identifier) > (parenthesized_expression "(&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0)" ( (comma_expression "&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" (pointer_expression "&local_10" & identifier) , (comma_expression "0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" number_literal , (comma_expression "*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" (pointer_expression "*(undefined4 *)(param_2 + 8)" * (cast_expression "(undefined4 *)(param_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) , (comma_expression "param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" identifier , (comma_expression "param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" identifier , (comma_expression "param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" identifier , (comma_expression "param_6,param_7,\n             param_8,local_18,&local_20,0" identifier , (comma_expression "param_7,\n             param_8,local_18,&local_20,0" identifier , (comma_expression "param_8,local_18,&local_20,0" identifier , (comma_expression "local_18,&local_20,0" identifier , (comma_expression "&local_20,0" (pointer_expression "&local_20" & identifier) , number_literal))))))))))) ))) ;))) (if_statement "if (local_18[0] == 0) {\n    *param_1 = local_10;\n    *param_10 = local_20;\n    param_1[1] = local_c;\n    return param_1;\n  }" if (parenthesized_expression "(local_18[0] == 0)" ( (binary_expression "local_18[0] == 0" (subscript_expression "local_18[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    *param_1 = local_10;\n    *param_10 = local_20;\n    param_1[1] = local_c;\n    return param_1;\n  }" { (expression_statement "*param_1 = local_10;" (assignment_expression "*param_1 = local_10" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*param_10 = local_20;" (assignment_expression "*param_10 = local_20" (pointer_expression "*param_10" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_c;" (assignment_expression "param_1[1] = local_c" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "*param_9 = local_18[0];" (assignment_expression "*param_9 = local_18[0]" (pointer_expression "*param_9" * identifier) = (subscript_expression "local_18[0]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = local_10;" (assignment_expression "*param_1 = local_10" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_c;" (assignment_expression "param_1[1] = local_c" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return param_1;" return identifier ;) })))
(translation_unit "/* std::__facet_shims::(anonymous\n   namespace)::money_get_shim<wchar_t>::do_get(std::istreambuf_iterator<wchar_t,\n   std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, bool,\n   std::ios_base&, std::_Ios_Iostate&, long double&) const */\n\nundefined4 *\nstd::__facet_shims::(anonymous_namespace)::money_get_shim<wchar_t>::do_get\n          (undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n          undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9,undefined8 *param_10\n          )\n\n{\n  undefined8 local_20;\n  int local_18 [2];\n  undefined4 local_10;\n  undefined4 local_c;\n  \n  local_18[0] = 0;\n  __money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);\n  if (local_18[0] == 0) {\n    *param_1 = local_10;\n    *param_10 = local_20;\n    param_1[1] = local_c;\n    return param_1;\n  }\n  *param_9 = local_18[0];\n  *param_1 = local_10;\n  param_1[1] = local_c;\n  return param_1;\n}\n\n" comment (ERROR "undefined4 *\nstd::" (binary_expression "undefined4 *\nstd" identifier * identifier) : :) (labeled_statement "__facet_shims::(anonymous_namespace)::money_get_shim<wchar_t>::do_get\n          (undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n          undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9,undefined8 *param_10\n          )" statement_identifier (ERROR "::(anonymous_namespace)::money_get_shim<wchar_t>:" : : (parenthesized_expression "(anonymous_namespace)" ( identifier )) : : (binary_expression "money_get_shim<wchar_t" identifier < identifier) > :) : (expression_statement "do_get\n          (undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n          undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9,undefined8 *param_10\n          )" (call_expression "do_get\n          (undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n          undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9,undefined8 *param_10\n          )" identifier (argument_list "(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,undefined4 param_5,\n          undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9,undefined8 *param_10\n          )" ( (binary_expression "undefined4 *param_1" identifier * identifier) , (ERROR "int" identifier) identifier , identifier (ERROR "param_3" identifier) , identifier (ERROR "param_4" identifier) , identifier (ERROR "param_5" identifier) , identifier (ERROR "param_6" identifier) , identifier (ERROR "param_7" identifier) , identifier (ERROR "param_8" identifier) , (binary_expression "int *param_9" identifier * identifier) , (binary_expression "undefined8 *param_10" identifier * identifier) ))) ;)) (compound_statement "{\n  undefined8 local_20;\n  int local_18 [2];\n  undefined4 local_10;\n  undefined4 local_c;\n  \n  local_18[0] = 0;\n  __money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);\n  if (local_18[0] == 0) {\n    *param_1 = local_10;\n    *param_10 = local_20;\n    param_1[1] = local_c;\n    return param_1;\n  }\n  *param_9 = local_18[0];\n  *param_1 = local_10;\n  param_1[1] = local_c;\n  return param_1;\n}" { (declaration "undefined8 local_20;" type_identifier identifier ;) (declaration "int local_18 [2];" primitive_type (array_declarator "local_18 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_10;" type_identifier identifier ;) (declaration "undefined4 local_c;" type_identifier identifier ;) (expression_statement "local_18[0] = 0;" (assignment_expression "local_18[0] = 0" (subscript_expression "local_18[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);" (binary_expression "__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0)" (binary_expression "__money_get<wchar_t" identifier < identifier) > (parenthesized_expression "(&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0)" ( (comma_expression "&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" (pointer_expression "&local_10" & identifier) , (comma_expression "0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" number_literal , (comma_expression "*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" (pointer_expression "*(undefined4 *)(param_2 + 8)" * (cast_expression "(undefined4 *)(param_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) , (comma_expression "param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" identifier , (comma_expression "param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" identifier , (comma_expression "param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" identifier , (comma_expression "param_6,param_7,\n             param_8,local_18,&local_20,0" identifier , (comma_expression "param_7,\n             param_8,local_18,&local_20,0" identifier , (comma_expression "param_8,local_18,&local_20,0" identifier , (comma_expression "local_18,&local_20,0" identifier , (comma_expression "&local_20,0" (pointer_expression "&local_20" & identifier) , number_literal))))))))))) ))) ;) (if_statement "if (local_18[0] == 0) {\n    *param_1 = local_10;\n    *param_10 = local_20;\n    param_1[1] = local_c;\n    return param_1;\n  }" if (parenthesized_expression "(local_18[0] == 0)" ( (binary_expression "local_18[0] == 0" (subscript_expression "local_18[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    *param_1 = local_10;\n    *param_10 = local_20;\n    param_1[1] = local_c;\n    return param_1;\n  }" { (expression_statement "*param_1 = local_10;" (assignment_expression "*param_1 = local_10" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*param_10 = local_20;" (assignment_expression "*param_10 = local_20" (pointer_expression "*param_10" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_c;" (assignment_expression "param_1[1] = local_c" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "*param_9 = local_18[0];" (assignment_expression "*param_9 = local_18[0]" (pointer_expression "*param_9" * identifier) = (subscript_expression "local_18[0]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = local_10;" (assignment_expression "*param_1 = local_10" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_c;" (assignment_expression "param_1[1] = local_c" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return param_1;" return identifier ;) }))
(translation_unit "undefined4 *\nFUN_0037b670(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9\n            ,undefined8 *param_10)\n\n{\n  undefined8 local_20;\n  int local_18 [2];\n  undefined4 local_10;\n  undefined4 local_c;\n  \n  local_18[0] = 0;\n  std::__facet_shims::__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);\n  if (local_18[0] == 0) {\n    *param_1 = local_10;\n    *param_10 = local_20;\n    param_1[1] = local_c;\n    return param_1;\n  }\n  *param_9 = local_18[0];\n  *param_1 = local_10;\n  param_1[1] = local_c;\n  return param_1;\n}\n\n" (function_definition "undefined4 *\nFUN_0037b670(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9\n            ,undefined8 *param_10)\n\n{\n  undefined8 local_20;\n  int local_18 [2];\n  undefined4 local_10;\n  undefined4 local_c;\n  \n  local_18[0] = 0;\n  std::__facet_shims::__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);\n  if (local_18[0] == 0) {\n    *param_1 = local_10;\n    *param_10 = local_20;\n    param_1[1] = local_c;\n    return param_1;\n  }\n  *param_9 = local_18[0];\n  *param_1 = local_10;\n  param_1[1] = local_c;\n  return param_1;\n}" type_identifier (pointer_declarator "*\nFUN_0037b670(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9\n            ,undefined8 *param_10)" * (function_declarator "FUN_0037b670(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9\n            ,undefined8 *param_10)" identifier (parameter_list "(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9\n            ,undefined8 *param_10)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "undefined1 param_7" type_identifier identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "int *param_9" primitive_type (pointer_declarator "*param_9" * identifier)) , (parameter_declaration "undefined8 *param_10" type_identifier (pointer_declarator "*param_10" * identifier)) )))) (compound_statement "{\n  undefined8 local_20;\n  int local_18 [2];\n  undefined4 local_10;\n  undefined4 local_c;\n  \n  local_18[0] = 0;\n  std::__facet_shims::__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);\n  if (local_18[0] == 0) {\n    *param_1 = local_10;\n    *param_10 = local_20;\n    param_1[1] = local_c;\n    return param_1;\n  }\n  *param_9 = local_18[0];\n  *param_1 = local_10;\n  param_1[1] = local_c;\n  return param_1;\n}" { (declaration "undefined8 local_20;" type_identifier identifier ;) (declaration "int local_18 [2];" primitive_type (array_declarator "local_18 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_10;" type_identifier identifier ;) (declaration "undefined4 local_c;" type_identifier identifier ;) (expression_statement "local_18[0] = 0;" (assignment_expression "local_18[0] = 0" (subscript_expression "local_18[0]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "std::__facet_shims::__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);" statement_identifier : (ERROR ":" :) (labeled_statement "__facet_shims::__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);" statement_identifier : (ERROR ":" :) (expression_statement "__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);" (binary_expression "__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0)" (binary_expression "__money_get<wchar_t" identifier < identifier) > (parenthesized_expression "(&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0)" ( (comma_expression "&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" (pointer_expression "&local_10" & identifier) , (comma_expression "0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" number_literal , (comma_expression "*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" (pointer_expression "*(undefined4 *)(param_2 + 8)" * (cast_expression "(undefined4 *)(param_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) , (comma_expression "param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" identifier , (comma_expression "param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" identifier , (comma_expression "param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" identifier , (comma_expression "param_6,param_7,\n             param_8,local_18,&local_20,0" identifier , (comma_expression "param_7,\n             param_8,local_18,&local_20,0" identifier , (comma_expression "param_8,local_18,&local_20,0" identifier , (comma_expression "local_18,&local_20,0" identifier , (comma_expression "&local_20,0" (pointer_expression "&local_20" & identifier) , number_literal))))))))))) ))) ;))) (if_statement "if (local_18[0] == 0) {\n    *param_1 = local_10;\n    *param_10 = local_20;\n    param_1[1] = local_c;\n    return param_1;\n  }" if (parenthesized_expression "(local_18[0] == 0)" ( (binary_expression "local_18[0] == 0" (subscript_expression "local_18[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    *param_1 = local_10;\n    *param_10 = local_20;\n    param_1[1] = local_c;\n    return param_1;\n  }" { (expression_statement "*param_1 = local_10;" (assignment_expression "*param_1 = local_10" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*param_10 = local_20;" (assignment_expression "*param_10 = local_20" (pointer_expression "*param_10" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_c;" (assignment_expression "param_1[1] = local_c" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "*param_9 = local_18[0];" (assignment_expression "*param_9 = local_18[0]" (pointer_expression "*param_9" * identifier) = (subscript_expression "local_18[0]" identifier [ number_literal ])) ;) (expression_statement "*param_1 = local_10;" (assignment_expression "*param_1 = local_10" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_c;" (assignment_expression "param_1[1] = local_c" (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) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (ERROR :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (binary_expression (binary_expression IDENT < IDENT) > (parenthesized_expression ( (comma_expression (pointer_expression & IDENT) , (comma_expression LIT , (comma_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , (comma_expression IDENT , (comma_expression (pointer_expression & IDENT) , LIT))))))))))) ))) ;))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return IDENT ;) })))
(function_definition "undefined4 *\nFUN_0037b670(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9\n            ,undefined8 *param_10)\n\n{\n  undefined8 local_20;\n  int local_18 [2];\n  undefined4 local_10;\n  undefined4 local_c;\n  \n  local_18[0] = 0;\n  std::__facet_shims::__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);\n  if (local_18[0] == 0) {\n    *param_1 = local_10;\n    *param_10 = local_20;\n    param_1[1] = local_c;\n    return param_1;\n  }\n  *param_9 = local_18[0];\n  *param_1 = local_10;\n  param_1[1] = local_c;\n  return param_1;\n}" (type_identifier "undefined4") (pointer_declarator "*\nFUN_0037b670(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9\n            ,undefined8 *param_10)" (* "*") (function_declarator "FUN_0037b670(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9\n            ,undefined8 *param_10)" (identifier "FUN_0037b670") (parameter_list "(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,\n            undefined4 param_5,undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9\n            ,undefined8 *param_10)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (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")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "undefined1 param_7" (type_identifier "undefined1") (identifier "param_7")) (, ",") (parameter_declaration "undefined4 param_8" (type_identifier "undefined4") (identifier "param_8")) (, ",") (parameter_declaration "int *param_9" (primitive_type "int") (pointer_declarator "*param_9" (* "*") (identifier "param_9"))) (, ",") (parameter_declaration "undefined8 *param_10" (type_identifier "undefined8") (pointer_declarator "*param_10" (* "*") (identifier "param_10"))) () ")")))) (compound_statement "{\n  undefined8 local_20;\n  int local_18 [2];\n  undefined4 local_10;\n  undefined4 local_c;\n  \n  local_18[0] = 0;\n  std::__facet_shims::__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);\n  if (local_18[0] == 0) {\n    *param_1 = local_10;\n    *param_10 = local_20;\n    param_1[1] = local_c;\n    return param_1;\n  }\n  *param_9 = local_18[0];\n  *param_1 = local_10;\n  param_1[1] = local_c;\n  return param_1;\n}" ({ "{") (declaration "undefined8 local_20;" (type_identifier "undefined8") (identifier "local_20") (; ";")) (declaration "int local_18 [2];" (primitive_type "int") (array_declarator "local_18 [2]" (identifier "local_18") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined4 local_10;" (type_identifier "undefined4") (identifier "local_10") (; ";")) (declaration "undefined4 local_c;" (type_identifier "undefined4") (identifier "local_c") (; ";")) (expression_statement "local_18[0] = 0;" (assignment_expression "local_18[0] = 0" (subscript_expression "local_18[0]" (identifier "local_18") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (labeled_statement "std::__facet_shims::__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);" (statement_identifier "std") (: ":") (ERROR ":" (: ":")) (labeled_statement "__facet_shims::__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);" (statement_identifier "__facet_shims") (: ":") (ERROR ":" (: ":")) (expression_statement "__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0);" (binary_expression "__money_get<wchar_t>\n            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0)" (binary_expression "__money_get<wchar_t" (identifier "__money_get") (< "<") (identifier "wchar_t")) (> ">") (parenthesized_expression "(&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0)" (( "(") (comma_expression "&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" (pointer_expression "&local_10" (& "&") (identifier "local_10")) (, ",") (comma_expression "0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" (number_literal "0") (, ",") (comma_expression "*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" (pointer_expression "*(undefined4 *)(param_2 + 8)" (* "*") (cast_expression "(undefined4 *)(param_2 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (, ",") (comma_expression "param_3,param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" (identifier "param_3") (, ",") (comma_expression "param_4,param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" (identifier "param_4") (, ",") (comma_expression "param_5,param_6,param_7,\n             param_8,local_18,&local_20,0" (identifier "param_5") (, ",") (comma_expression "param_6,param_7,\n             param_8,local_18,&local_20,0" (identifier "param_6") (, ",") (comma_expression "param_7,\n             param_8,local_18,&local_20,0" (identifier "param_7") (, ",") (comma_expression "param_8,local_18,&local_20,0" (identifier "param_8") (, ",") (comma_expression "local_18,&local_20,0" (identifier "local_18") (, ",") (comma_expression "&local_20,0" (pointer_expression "&local_20" (& "&") (identifier "local_20")) (, ",") (number_literal "0")))))))))))) () ")"))) (; ";")))) (if_statement "if (local_18[0] == 0) {\n    *param_1 = local_10;\n    *param_10 = local_20;\n    param_1[1] = local_c;\n    return param_1;\n  }" (if "if") (parenthesized_expression "(local_18[0] == 0)" (( "(") (binary_expression "local_18[0] == 0" (subscript_expression "local_18[0]" (identifier "local_18") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *param_1 = local_10;\n    *param_10 = local_20;\n    param_1[1] = local_c;\n    return param_1;\n  }" ({ "{") (expression_statement "*param_1 = local_10;" (assignment_expression "*param_1 = local_10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "local_10")) (; ";")) (expression_statement "*param_10 = local_20;" (assignment_expression "*param_10 = local_20" (pointer_expression "*param_10" (* "*") (identifier "param_10")) (= "=") (identifier "local_20")) (; ";")) (expression_statement "param_1[1] = local_c;" (assignment_expression "param_1[1] = local_c" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_c")) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (expression_statement "*param_9 = local_18[0];" (assignment_expression "*param_9 = local_18[0]" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (subscript_expression "local_18[0]" (identifier "local_18") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*param_1 = local_10;" (assignment_expression "*param_1 = local_10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "local_10")) (; ";")) (expression_statement "param_1[1] = local_c;" (assignment_expression "param_1[1] = local_c" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_c")) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))

/* std::__facet_shims::(anonymous
   namespace)::money_get_shim<wchar_t>::do_get(std::istreambuf_iterator<wchar_t,
   std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, bool,
   std::ios_base&, std::_Ios_Iostate&, long double&) const */

var_2 *
std::__facet_shims::(anonymous_namespace)::money_get_shim<var_9>::var_1
          (var_2 *var_3,var_4 var_10,var_2 param_3,var_2 param_4,var_2 param_5,
          var_2 param_6,undefined1 param_7,var_2 param_8,var_4 *var_5,var_6 *var_7
          )

{
  var_6 local_20;
  int local_18 [2];
  var_2 local_10;
  var_2 local_c;
  
  local_18[0] = 0;
  var_8<var_9>
            (&local_10,0,*(var_2 *)(var_10 + 8),param_3,param_4,param_5,param_6,param_7,
             param_8,local_18,&local_20,0);
  if (local_18[0] == 0) {
    *var_3 = local_10;
    *var_7 = local_20;
    var_3[1] = local_c;
    return var_3;
  }
  *var_5 = local_18[0];
  *var_3 = local_10;
  var_3[1] = local_c;
  return var_3;
}


(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: (primitive_type) 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: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier)))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (labeled_statement label: (statement_identifier) (ERROR) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (comma_expression left: (pointer_expression argument: (identifier)) right: (comma_expression left: (number_literal) right: (comma_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: (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: (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))))))))))))) (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: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement (identifier)))))

undefined4 *
MASKED(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4,
            undefined4 param_5,undefined4 param_6,undefined1 param_7,undefined4 param_8,int *param_9
            ,undefined8 *param_10)

{
  undefined8 local_20;
  int local_18 [2];
  undefined4 local_10;
  undefined4 local_c;
  
  local_18[0] = 0;
  std::__facet_shims::__money_get<wchar_t>
            (&local_10,0,*(undefined4 *)(param_2 + 8),param_3,param_4,param_5,param_6,param_7,
             param_8,local_18,&local_20,0);
  if (local_18[0] == 0) {
    *param_1 = local_10;
    *param_10 = local_20;
    param_1[1] = local_c;
    return param_1;
  }
  *param_9 = local_18[0];
  *param_1 = local_10;
  param_1[1] = local_c;
  return param_1;
}

