
/* std::money_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<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::money_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::do_get
          (undefined4 *param_1)

{
  undefined *puVar1;
  undefined *puVar2;
  code *pcVar3;
  undefined4 in_stack_00000010;
  undefined4 in_stack_00000014;
  char in_stack_0000001b;
  undefined4 in_stack_0000001c;
  undefined4 in_stack_00000020;
  undefined4 in_stack_00000024;
  undefined4 uVar4;
  undefined **ppuVar5;
  undefined4 local_28;
  undefined *local_24;
  undefined4 local_20;
  undefined4 local_1c;
  
  puVar1 = PTR__S_empty_rep_storage_004322d0;
  local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc;
  pcVar3 = (code *)PTR__M_extract<false>_00433c0c;
  if (in_stack_0000001b != '\0') {
    pcVar3 = (code *)PTR__M_extract<true>_00433c08;
  }
  ppuVar5 = &local_24;
  uVar4 = in_stack_00000020;
                    /* try { // try from 00332580 to 003325a7 has its CatchHandler @ 00332630 */
  (*pcVar3)(&local_20);
  puVar2 = local_24;
  local_28 = (*(code *)PTR__S_get_c_locale_00432354)();
  (*(code *)PTR___convert_to_v<long_double>_00433944)
            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,
             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5);
  *param_1 = local_20;
  param_1[1] = local_1c;
  if ((allocator *)(local_24 + -0xc) != (allocator *)puVar1) {
    std::string::_Rep::_M_dispose((allocator *)(local_24 + -0xc));
  }
  return param_1;
}



undefined4 * FUN_00332508(undefined4 *param_1)

{
  undefined *puVar1;
  undefined *puVar2;
  code *pcVar3;
  undefined4 in_stack_00000010;
  undefined4 in_stack_00000014;
  char in_stack_0000001b;
  undefined4 in_stack_0000001c;
  undefined4 in_stack_00000020;
  undefined4 in_stack_00000024;
  undefined4 uVar4;
  undefined **ppuVar5;
  undefined4 local_28;
  undefined *local_24;
  undefined4 local_20;
  undefined4 local_1c;
  
  puVar1 = PTR__S_empty_rep_storage_004322d0;
  local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc;
  pcVar3 = (code *)PTR__M_extract<false>_00433c0c;
  if (in_stack_0000001b != '\0') {
    pcVar3 = (code *)PTR__M_extract<true>_00433c08;
  }
  ppuVar5 = &local_24;
  uVar4 = in_stack_00000020;
                    /* try { // try from 00332580 to 003325a7 has its CatchHandler @ 00332630 */
  (*pcVar3)(&local_20);
  puVar2 = local_24;
  local_28 = (*(code *)PTR__S_get_c_locale_00432354)();
  (*(code *)PTR___convert_to_v<long_double>_00433944)
            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,
             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5);
  *param_1 = local_20;
  param_1[1] = local_1c;
  if (local_24 + -0xc != puVar1) {
    FUN_0031eea8(local_24 + -0xc,&local_28);
  }
  return param_1;
}


lui gp,0x10
addiu gp,gp,0x7cc8
addu gp,gp,t9
addiu sp,sp,-0x58
lbu v1,0x73(sp)
sw s1,0x44(sp)
sw s0,0x40(sp)
or s0,a0,zero
sw gp,0x28(sp)
lw s1,-0x7f00(gp)
lw v0,0x74(sp)
sw s2,0x48(sp)
addiu a0,s1,0xc
sw ra,0x54(sp)
sw s4,0x50(sp)
sw a0,0x34(sp)
addiu a0,sp,0x38
sw s3,0x4c(sp)
sw a2,0x60(sp)
sw a3,0x64(sp)
beq v1,zero,0x00332610
_lw s2,0x78(sp)
lw t9,-0x65c8(gp)
sw v0,0x18(sp)
addiu v1,sp,0x34
lw v0,0x68(sp)
sw v1,0x20(sp)
sw s2,0x1c(sp)
sw v0,0x10(sp)
lw v0,0x6c(sp)
jalr t9
_sw v0,0x14(sp)
lw v0,0x38(sp)
lw gp,0x28(sp)
lw s4,0x34(sp)
sw v0,0x60(sp)
lw v0,0x3c(sp)
lw t9,-0x7e7c(gp)
jalr t9
_sw v0,0x64(sp)
lw gp,0x28(sp)
addiu s3,sp,0x30
lw a1,0x7c(sp)
or a0,s4,zero
sw v0,0x30(sp)
or a2,s2,zero
lw t9,-0x688c(gp)
jalr t9
_or a3,s3,zero
lw v0,0x60(sp)
lw a0,0x34(sp)
lw gp,0x28(sp)
sw v0,0x0(s0)
lw v0,0x64(sp)
addiu a0,a0,-0xc
bne a0,s1,0x00332618
_sw v0,0x4(s0)
lw ra,0x54(sp)
or v0,s0,zero
lw s4,0x50(sp)
lw s3,0x4c(sp)
lw s2,0x48(sp)
lw s1,0x44(sp)
lw s0,0x40(sp)
jr ra
_addiu sp,sp,0x58
b 0x00332564
_lw t9,-0x65c4(gp)
lw t9,-0x6798(gp)
addiu t9,t9,-0x1158
bal 0x0031eea8
_or a1,s3,zero
b 0x003325f0
_lw ra,0x54(sp)
(translation_unit "undefined4 * FUN_00332508(undefined4 *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  undefined4 in_stack_00000010;\n  undefined4 in_stack_00000014;\n  char in_stack_0000001b;\n  undefined4 in_stack_0000001c;\n  undefined4 in_stack_00000020;\n  undefined4 in_stack_00000024;\n  undefined4 uVar4;\n  undefined **ppuVar5;\n  undefined4 local_28;\n  undefined *local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  \n  puVar1 = PTR__S_empty_rep_storage_004322d0;\n  local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc;\n  pcVar3 = (code *)PTR__M_extract<false>_00433c0c;\n  if (in_stack_0000001b != '\0') {\n    pcVar3 = (code *)PTR__M_extract<true>_00433c08;\n  }\n  ppuVar5 = &local_24;\n  uVar4 = in_stack_00000020;\n                    /* try { // try from 00332580 to 003325a7 has its CatchHandler @ 00332630 */\n  (*pcVar3)(&local_20);\n  puVar2 = local_24;\n  local_28 = (*(code *)PTR__S_get_c_locale_00432354)();\n  (*(code *)PTR___convert_to_v<long_double>_00433944)\n            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5);\n  *param_1 = local_20;\n  param_1[1] = local_1c;\n  if (local_24 + -0xc != puVar1) {\n    FUN_0031eea8(local_24 + -0xc,&local_28);\n  }\n  return param_1;\n}\n\n" (function_definition "undefined4 * FUN_00332508(undefined4 *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  undefined4 in_stack_00000010;\n  undefined4 in_stack_00000014;\n  char in_stack_0000001b;\n  undefined4 in_stack_0000001c;\n  undefined4 in_stack_00000020;\n  undefined4 in_stack_00000024;\n  undefined4 uVar4;\n  undefined **ppuVar5;\n  undefined4 local_28;\n  undefined *local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  \n  puVar1 = PTR__S_empty_rep_storage_004322d0;\n  local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc;\n  pcVar3 = (code *)PTR__M_extract<false>_00433c0c;\n  if (in_stack_0000001b != '\0') {\n    pcVar3 = (code *)PTR__M_extract<true>_00433c08;\n  }\n  ppuVar5 = &local_24;\n  uVar4 = in_stack_00000020;\n                    /* try { // try from 00332580 to 003325a7 has its CatchHandler @ 00332630 */\n  (*pcVar3)(&local_20);\n  puVar2 = local_24;\n  local_28 = (*(code *)PTR__S_get_c_locale_00432354)();\n  (*(code *)PTR___convert_to_v<long_double>_00433944)\n            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5);\n  *param_1 = local_20;\n  param_1[1] = local_1c;\n  if (local_24 + -0xc != puVar1) {\n    FUN_0031eea8(local_24 + -0xc,&local_28);\n  }\n  return param_1;\n}" type_identifier (pointer_declarator "* FUN_00332508(undefined4 *param_1)" * (function_declarator "FUN_00332508(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  undefined4 in_stack_00000010;\n  undefined4 in_stack_00000014;\n  char in_stack_0000001b;\n  undefined4 in_stack_0000001c;\n  undefined4 in_stack_00000020;\n  undefined4 in_stack_00000024;\n  undefined4 uVar4;\n  undefined **ppuVar5;\n  undefined4 local_28;\n  undefined *local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  \n  puVar1 = PTR__S_empty_rep_storage_004322d0;\n  local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc;\n  pcVar3 = (code *)PTR__M_extract<false>_00433c0c;\n  if (in_stack_0000001b != '\0') {\n    pcVar3 = (code *)PTR__M_extract<true>_00433c08;\n  }\n  ppuVar5 = &local_24;\n  uVar4 = in_stack_00000020;\n                    /* try { // try from 00332580 to 003325a7 has its CatchHandler @ 00332630 */\n  (*pcVar3)(&local_20);\n  puVar2 = local_24;\n  local_28 = (*(code *)PTR__S_get_c_locale_00432354)();\n  (*(code *)PTR___convert_to_v<long_double>_00433944)\n            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5);\n  *param_1 = local_20;\n  param_1[1] = local_1c;\n  if (local_24 + -0xc != puVar1) {\n    FUN_0031eea8(local_24 + -0xc,&local_28);\n  }\n  return param_1;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined4 in_stack_00000010;" type_identifier identifier ;) (declaration "undefined4 in_stack_00000014;" type_identifier identifier ;) (declaration "char in_stack_0000001b;" primitive_type identifier ;) (declaration "undefined4 in_stack_0000001c;" type_identifier identifier ;) (declaration "undefined4 in_stack_00000020;" type_identifier identifier ;) (declaration "undefined4 in_stack_00000024;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined **ppuVar5;" type_identifier (pointer_declarator "**ppuVar5" * (pointer_declarator "*ppuVar5" * identifier)) ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 local_1c;" type_identifier identifier ;) (expression_statement "puVar1 = PTR__S_empty_rep_storage_004322d0;" (assignment_expression "puVar1 = PTR__S_empty_rep_storage_004322d0" identifier = identifier) ;) (expression_statement "local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc;" (assignment_expression "local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc" identifier = (binary_expression "PTR__S_empty_rep_storage_004322d0 + 0xc" identifier + number_literal)) ;) (expression_statement "pcVar3 = (code *)PTR__M_extract<false>_00433c0c;" (assignment_expression "pcVar3 = (code *)PTR__M_extract<false>_00433c0c" identifier = (binary_expression "(code *)PTR__M_extract<false>_00433c0c" (binary_expression "(code *)PTR__M_extract<false" (cast_expression "(code *)PTR__M_extract" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < false) > identifier)) ;) (if_statement "if (in_stack_0000001b != '\0') {\n    pcVar3 = (code *)PTR__M_extract<true>_00433c08;\n  }" if (parenthesized_expression "(in_stack_0000001b != '\0')" ( (binary_expression "in_stack_0000001b != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pcVar3 = (code *)PTR__M_extract<true>_00433c08;\n  }" { (expression_statement "pcVar3 = (code *)PTR__M_extract<true>_00433c08;" (assignment_expression "pcVar3 = (code *)PTR__M_extract<true>_00433c08" identifier = (binary_expression "(code *)PTR__M_extract<true>_00433c08" (binary_expression "(code *)PTR__M_extract<true" (cast_expression "(code *)PTR__M_extract" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < true) > identifier)) ;) })) (expression_statement "ppuVar5 = &local_24;" (assignment_expression "ppuVar5 = &local_24" identifier = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "uVar4 = in_stack_00000020;" (assignment_expression "uVar4 = in_stack_00000020" identifier = identifier) ;) comment (expression_statement "(*pcVar3)(&local_20);" (call_expression "(*pcVar3)(&local_20)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(&local_20)" ( (pointer_expression "&local_20" & identifier) ))) ;) (expression_statement "puVar2 = local_24;" (assignment_expression "puVar2 = local_24" identifier = identifier) ;) (expression_statement "local_28 = (*(code *)PTR__S_get_c_locale_00432354)();" (assignment_expression "local_28 = (*(code *)PTR__S_get_c_locale_00432354)()" identifier = (call_expression "(*(code *)PTR__S_get_c_locale_00432354)()" (parenthesized_expression "(*(code *)PTR__S_get_c_locale_00432354)" ( (pointer_expression "*(code *)PTR__S_get_c_locale_00432354" * (cast_expression "(code *)PTR__S_get_c_locale_00432354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "(*(code *)PTR___convert_to_v<long_double>_00433944)\n            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5);" (call_expression "(*(code *)PTR___convert_to_v<long_double>_00433944)\n            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5)" (parenthesized_expression "(*(code *)PTR___convert_to_v<long_double>_00433944)" ( (binary_expression "*(code *)PTR___convert_to_v<long_double>_00433944" (binary_expression "*(code *)PTR___convert_to_v<long_double" (pointer_expression "*(code *)PTR___convert_to_v" * (cast_expression "(code *)PTR___convert_to_v" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) > identifier) )) (argument_list "(puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5)" ( identifier , identifier , identifier , (pointer_expression "&local_28" & identifier) , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "*param_1 = local_20;" (assignment_expression "*param_1 = local_20" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_1c;" (assignment_expression "param_1[1] = local_1c" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_24 + -0xc != puVar1) {\n    FUN_0031eea8(local_24 + -0xc,&local_28);\n  }" if (parenthesized_expression "(local_24 + -0xc != puVar1)" ( (binary_expression "local_24 + -0xc != puVar1" (binary_expression "local_24 + -0xc" identifier + number_literal) != identifier) )) (compound_statement "{\n    FUN_0031eea8(local_24 + -0xc,&local_28);\n  }" { (expression_statement "FUN_0031eea8(local_24 + -0xc,&local_28);" (call_expression "FUN_0031eea8(local_24 + -0xc,&local_28)" identifier (argument_list "(local_24 + -0xc,&local_28)" ( (binary_expression "local_24 + -0xc" identifier + number_literal) , (pointer_expression "&local_28" & identifier) ))) ;) })) (return_statement "return param_1;" return identifier ;) })))
(translation_unit "/* std::money_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >\n   >::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,\n   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, bool, std::ios_base&,\n   std::_Ios_Iostate&, long double&) const */\n\nundefined4 *\nstd::money_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::do_get\n          (undefined4 *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  undefined4 in_stack_00000010;\n  undefined4 in_stack_00000014;\n  char in_stack_0000001b;\n  undefined4 in_stack_0000001c;\n  undefined4 in_stack_00000020;\n  undefined4 in_stack_00000024;\n  undefined4 uVar4;\n  undefined **ppuVar5;\n  undefined4 local_28;\n  undefined *local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  \n  puVar1 = PTR__S_empty_rep_storage_004322d0;\n  local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc;\n  pcVar3 = (code *)PTR__M_extract<false>_00433c0c;\n  if (in_stack_0000001b != '\0') {\n    pcVar3 = (code *)PTR__M_extract<true>_00433c08;\n  }\n  ppuVar5 = &local_24;\n  uVar4 = in_stack_00000020;\n                    /* try { // try from 00332580 to 003325a7 has its CatchHandler @ 00332630 */\n  (*pcVar3)(&local_20);\n  puVar2 = local_24;\n  local_28 = (*(code *)PTR__S_get_c_locale_00432354)();\n  (*(code *)PTR___convert_to_v<long_double>_00433944)\n            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5);\n  *param_1 = local_20;\n  param_1[1] = local_1c;\n  if ((allocator *)(local_24 + -0xc) != (allocator *)puVar1) {\n    std::string::_Rep::_M_dispose((allocator *)(local_24 + -0xc));\n  }\n  return param_1;\n}\n\n" comment (ERROR "undefined4 *\nstd::money_get<wchar_t," (binary_expression "undefined4 *\nstd::money_get<wchar_t" (binary_expression "undefined4 *\nstd" identifier * identifier) (ERROR "::money_get" : : identifier) < identifier) ,) (labeled_statement "std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::do_get\n          (undefined4 *param_1)" statement_identifier (ERROR "::istreambuf_iterator<wchar_t,std:" : : (comma_expression "istreambuf_iterator<wchar_t,std" (binary_expression "istreambuf_iterator<wchar_t" identifier < identifier) , identifier) :) : (expression_statement "char_traits<wchar_t>>>::do_get\n          (undefined4 *param_1)" (binary_expression "char_traits<wchar_t>>>::do_get\n          (undefined4 *param_1)" identifier < (binary_expression "wchar_t>>>::do_get\n          (undefined4 *param_1)" identifier >> (ERROR ">::" > : :) (call_expression "do_get\n          (undefined4 *param_1)" identifier (argument_list "(undefined4 *param_1)" ( (binary_expression "undefined4 *param_1" identifier * identifier) ))))) ;)) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  undefined4 in_stack_00000010;\n  undefined4 in_stack_00000014;\n  char in_stack_0000001b;\n  undefined4 in_stack_0000001c;\n  undefined4 in_stack_00000020;\n  undefined4 in_stack_00000024;\n  undefined4 uVar4;\n  undefined **ppuVar5;\n  undefined4 local_28;\n  undefined *local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  \n  puVar1 = PTR__S_empty_rep_storage_004322d0;\n  local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc;\n  pcVar3 = (code *)PTR__M_extract<false>_00433c0c;\n  if (in_stack_0000001b != '\0') {\n    pcVar3 = (code *)PTR__M_extract<true>_00433c08;\n  }\n  ppuVar5 = &local_24;\n  uVar4 = in_stack_00000020;\n                    /* try { // try from 00332580 to 003325a7 has its CatchHandler @ 00332630 */\n  (*pcVar3)(&local_20);\n  puVar2 = local_24;\n  local_28 = (*(code *)PTR__S_get_c_locale_00432354)();\n  (*(code *)PTR___convert_to_v<long_double>_00433944)\n            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5);\n  *param_1 = local_20;\n  param_1[1] = local_1c;\n  if ((allocator *)(local_24 + -0xc) != (allocator *)puVar1) {\n    std::string::_Rep::_M_dispose((allocator *)(local_24 + -0xc));\n  }\n  return param_1;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined4 in_stack_00000010;" type_identifier identifier ;) (declaration "undefined4 in_stack_00000014;" type_identifier identifier ;) (declaration "char in_stack_0000001b;" primitive_type identifier ;) (declaration "undefined4 in_stack_0000001c;" type_identifier identifier ;) (declaration "undefined4 in_stack_00000020;" type_identifier identifier ;) (declaration "undefined4 in_stack_00000024;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined **ppuVar5;" type_identifier (pointer_declarator "**ppuVar5" * (pointer_declarator "*ppuVar5" * identifier)) ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 local_1c;" type_identifier identifier ;) (expression_statement "puVar1 = PTR__S_empty_rep_storage_004322d0;" (assignment_expression "puVar1 = PTR__S_empty_rep_storage_004322d0" identifier = identifier) ;) (expression_statement "local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc;" (assignment_expression "local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc" identifier = (binary_expression "PTR__S_empty_rep_storage_004322d0 + 0xc" identifier + number_literal)) ;) (expression_statement "pcVar3 = (code *)PTR__M_extract<false>_00433c0c;" (assignment_expression "pcVar3 = (code *)PTR__M_extract<false>_00433c0c" identifier = (binary_expression "(code *)PTR__M_extract<false>_00433c0c" (binary_expression "(code *)PTR__M_extract<false" (cast_expression "(code *)PTR__M_extract" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < false) > identifier)) ;) (if_statement "if (in_stack_0000001b != '\0') {\n    pcVar3 = (code *)PTR__M_extract<true>_00433c08;\n  }" if (parenthesized_expression "(in_stack_0000001b != '\0')" ( (binary_expression "in_stack_0000001b != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pcVar3 = (code *)PTR__M_extract<true>_00433c08;\n  }" { (expression_statement "pcVar3 = (code *)PTR__M_extract<true>_00433c08;" (assignment_expression "pcVar3 = (code *)PTR__M_extract<true>_00433c08" identifier = (binary_expression "(code *)PTR__M_extract<true>_00433c08" (binary_expression "(code *)PTR__M_extract<true" (cast_expression "(code *)PTR__M_extract" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < true) > identifier)) ;) })) (expression_statement "ppuVar5 = &local_24;" (assignment_expression "ppuVar5 = &local_24" identifier = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "uVar4 = in_stack_00000020;" (assignment_expression "uVar4 = in_stack_00000020" identifier = identifier) ;) comment (expression_statement "(*pcVar3)(&local_20);" (call_expression "(*pcVar3)(&local_20)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(&local_20)" ( (pointer_expression "&local_20" & identifier) ))) ;) (expression_statement "puVar2 = local_24;" (assignment_expression "puVar2 = local_24" identifier = identifier) ;) (expression_statement "local_28 = (*(code *)PTR__S_get_c_locale_00432354)();" (assignment_expression "local_28 = (*(code *)PTR__S_get_c_locale_00432354)()" identifier = (call_expression "(*(code *)PTR__S_get_c_locale_00432354)()" (parenthesized_expression "(*(code *)PTR__S_get_c_locale_00432354)" ( (pointer_expression "*(code *)PTR__S_get_c_locale_00432354" * (cast_expression "(code *)PTR__S_get_c_locale_00432354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "(*(code *)PTR___convert_to_v<long_double>_00433944)\n            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5);" (call_expression "(*(code *)PTR___convert_to_v<long_double>_00433944)\n            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5)" (parenthesized_expression "(*(code *)PTR___convert_to_v<long_double>_00433944)" ( (binary_expression "*(code *)PTR___convert_to_v<long_double>_00433944" (binary_expression "*(code *)PTR___convert_to_v<long_double" (pointer_expression "*(code *)PTR___convert_to_v" * (cast_expression "(code *)PTR___convert_to_v" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) > identifier) )) (argument_list "(puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5)" ( identifier , identifier , identifier , (pointer_expression "&local_28" & identifier) , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "*param_1 = local_20;" (assignment_expression "*param_1 = local_20" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_1c;" (assignment_expression "param_1[1] = local_1c" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((allocator *)(local_24 + -0xc) != (allocator *)puVar1) {\n    std::string::_Rep::_M_dispose((allocator *)(local_24 + -0xc));\n  }" if (parenthesized_expression "((allocator *)(local_24 + -0xc) != (allocator *)puVar1)" ( (binary_expression "(allocator *)(local_24 + -0xc) != (allocator *)puVar1" (cast_expression "(allocator *)(local_24 + -0xc)" ( (type_descriptor "allocator *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + -0xc)" ( (binary_expression "local_24 + -0xc" identifier + number_literal) ))) != (cast_expression "(allocator *)puVar1" ( (type_descriptor "allocator *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    std::string::_Rep::_M_dispose((allocator *)(local_24 + -0xc));\n  }" { (labeled_statement "std::string::_Rep::_M_dispose((allocator *)(local_24 + -0xc));" statement_identifier : (ERROR ":" :) (labeled_statement "string::_Rep::_M_dispose((allocator *)(local_24 + -0xc));" statement_identifier : (ERROR ":" :) (labeled_statement "_Rep::_M_dispose((allocator *)(local_24 + -0xc));" statement_identifier : (ERROR ":" :) (expression_statement "_M_dispose((allocator *)(local_24 + -0xc));" (call_expression "_M_dispose((allocator *)(local_24 + -0xc))" identifier (argument_list "((allocator *)(local_24 + -0xc))" ( (cast_expression "(allocator *)(local_24 + -0xc)" ( (type_descriptor "allocator *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + -0xc)" ( (binary_expression "local_24 + -0xc" identifier + number_literal) ))) ))) ;)))) })) (return_statement "return param_1;" return identifier ;) }))
(translation_unit "undefined4 * FUN_00332508(undefined4 *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  undefined4 in_stack_00000010;\n  undefined4 in_stack_00000014;\n  char in_stack_0000001b;\n  undefined4 in_stack_0000001c;\n  undefined4 in_stack_00000020;\n  undefined4 in_stack_00000024;\n  undefined4 uVar4;\n  undefined **ppuVar5;\n  undefined4 local_28;\n  undefined *local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  \n  puVar1 = PTR__S_empty_rep_storage_004322d0;\n  local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc;\n  pcVar3 = (code *)PTR__M_extract<false>_00433c0c;\n  if (in_stack_0000001b != '\0') {\n    pcVar3 = (code *)PTR__M_extract<true>_00433c08;\n  }\n  ppuVar5 = &local_24;\n  uVar4 = in_stack_00000020;\n                    \n  (*pcVar3)(&local_20);\n  puVar2 = local_24;\n  local_28 = (*(code *)PTR__S_get_c_locale_00432354)();\n  (*(code *)PTR___convert_to_v<long_double>_00433944)\n            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5);\n  *param_1 = local_20;\n  param_1[1] = local_1c;\n  if (local_24 + -0xc != puVar1) {\n    FUN_0031eea8(local_24 + -0xc,&local_28);\n  }\n  return param_1;\n}\n\n" (function_definition "undefined4 * FUN_00332508(undefined4 *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  undefined4 in_stack_00000010;\n  undefined4 in_stack_00000014;\n  char in_stack_0000001b;\n  undefined4 in_stack_0000001c;\n  undefined4 in_stack_00000020;\n  undefined4 in_stack_00000024;\n  undefined4 uVar4;\n  undefined **ppuVar5;\n  undefined4 local_28;\n  undefined *local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  \n  puVar1 = PTR__S_empty_rep_storage_004322d0;\n  local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc;\n  pcVar3 = (code *)PTR__M_extract<false>_00433c0c;\n  if (in_stack_0000001b != '\0') {\n    pcVar3 = (code *)PTR__M_extract<true>_00433c08;\n  }\n  ppuVar5 = &local_24;\n  uVar4 = in_stack_00000020;\n                    \n  (*pcVar3)(&local_20);\n  puVar2 = local_24;\n  local_28 = (*(code *)PTR__S_get_c_locale_00432354)();\n  (*(code *)PTR___convert_to_v<long_double>_00433944)\n            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5);\n  *param_1 = local_20;\n  param_1[1] = local_1c;\n  if (local_24 + -0xc != puVar1) {\n    FUN_0031eea8(local_24 + -0xc,&local_28);\n  }\n  return param_1;\n}" type_identifier (pointer_declarator "* FUN_00332508(undefined4 *param_1)" * (function_declarator "FUN_00332508(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) )))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  undefined4 in_stack_00000010;\n  undefined4 in_stack_00000014;\n  char in_stack_0000001b;\n  undefined4 in_stack_0000001c;\n  undefined4 in_stack_00000020;\n  undefined4 in_stack_00000024;\n  undefined4 uVar4;\n  undefined **ppuVar5;\n  undefined4 local_28;\n  undefined *local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  \n  puVar1 = PTR__S_empty_rep_storage_004322d0;\n  local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc;\n  pcVar3 = (code *)PTR__M_extract<false>_00433c0c;\n  if (in_stack_0000001b != '\0') {\n    pcVar3 = (code *)PTR__M_extract<true>_00433c08;\n  }\n  ppuVar5 = &local_24;\n  uVar4 = in_stack_00000020;\n                    \n  (*pcVar3)(&local_20);\n  puVar2 = local_24;\n  local_28 = (*(code *)PTR__S_get_c_locale_00432354)();\n  (*(code *)PTR___convert_to_v<long_double>_00433944)\n            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5);\n  *param_1 = local_20;\n  param_1[1] = local_1c;\n  if (local_24 + -0xc != puVar1) {\n    FUN_0031eea8(local_24 + -0xc,&local_28);\n  }\n  return param_1;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined4 in_stack_00000010;" type_identifier identifier ;) (declaration "undefined4 in_stack_00000014;" type_identifier identifier ;) (declaration "char in_stack_0000001b;" primitive_type identifier ;) (declaration "undefined4 in_stack_0000001c;" type_identifier identifier ;) (declaration "undefined4 in_stack_00000020;" type_identifier identifier ;) (declaration "undefined4 in_stack_00000024;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined **ppuVar5;" type_identifier (pointer_declarator "**ppuVar5" * (pointer_declarator "*ppuVar5" * identifier)) ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 local_1c;" type_identifier identifier ;) (expression_statement "puVar1 = PTR__S_empty_rep_storage_004322d0;" (assignment_expression "puVar1 = PTR__S_empty_rep_storage_004322d0" identifier = identifier) ;) (expression_statement "local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc;" (assignment_expression "local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc" identifier = (binary_expression "PTR__S_empty_rep_storage_004322d0 + 0xc" identifier + number_literal)) ;) (expression_statement "pcVar3 = (code *)PTR__M_extract<false>_00433c0c;" (assignment_expression "pcVar3 = (code *)PTR__M_extract<false>_00433c0c" identifier = (binary_expression "(code *)PTR__M_extract<false>_00433c0c" (binary_expression "(code *)PTR__M_extract<false" (cast_expression "(code *)PTR__M_extract" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < false) > identifier)) ;) (if_statement "if (in_stack_0000001b != '\0') {\n    pcVar3 = (code *)PTR__M_extract<true>_00433c08;\n  }" if (parenthesized_expression "(in_stack_0000001b != '\0')" ( (binary_expression "in_stack_0000001b != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pcVar3 = (code *)PTR__M_extract<true>_00433c08;\n  }" { (expression_statement "pcVar3 = (code *)PTR__M_extract<true>_00433c08;" (assignment_expression "pcVar3 = (code *)PTR__M_extract<true>_00433c08" identifier = (binary_expression "(code *)PTR__M_extract<true>_00433c08" (binary_expression "(code *)PTR__M_extract<true" (cast_expression "(code *)PTR__M_extract" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < true) > identifier)) ;) })) (expression_statement "ppuVar5 = &local_24;" (assignment_expression "ppuVar5 = &local_24" identifier = (pointer_expression "&local_24" & identifier)) ;) (expression_statement "uVar4 = in_stack_00000020;" (assignment_expression "uVar4 = in_stack_00000020" identifier = identifier) ;) (expression_statement "(*pcVar3)(&local_20);" (call_expression "(*pcVar3)(&local_20)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(&local_20)" ( (pointer_expression "&local_20" & identifier) ))) ;) (expression_statement "puVar2 = local_24;" (assignment_expression "puVar2 = local_24" identifier = identifier) ;) (expression_statement "local_28 = (*(code *)PTR__S_get_c_locale_00432354)();" (assignment_expression "local_28 = (*(code *)PTR__S_get_c_locale_00432354)()" identifier = (call_expression "(*(code *)PTR__S_get_c_locale_00432354)()" (parenthesized_expression "(*(code *)PTR__S_get_c_locale_00432354)" ( (pointer_expression "*(code *)PTR__S_get_c_locale_00432354" * (cast_expression "(code *)PTR__S_get_c_locale_00432354" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "(*(code *)PTR___convert_to_v<long_double>_00433944)\n            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5);" (call_expression "(*(code *)PTR___convert_to_v<long_double>_00433944)\n            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5)" (parenthesized_expression "(*(code *)PTR___convert_to_v<long_double>_00433944)" ( (binary_expression "*(code *)PTR___convert_to_v<long_double>_00433944" (binary_expression "*(code *)PTR___convert_to_v<long_double" (pointer_expression "*(code *)PTR___convert_to_v" * (cast_expression "(code *)PTR___convert_to_v" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) > identifier) )) (argument_list "(puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5)" ( identifier , identifier , identifier , (pointer_expression "&local_28" & identifier) , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "*param_1 = local_20;" (assignment_expression "*param_1 = local_20" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_1c;" (assignment_expression "param_1[1] = local_1c" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_24 + -0xc != puVar1) {\n    FUN_0031eea8(local_24 + -0xc,&local_28);\n  }" if (parenthesized_expression "(local_24 + -0xc != puVar1)" ( (binary_expression "local_24 + -0xc != puVar1" (binary_expression "local_24 + -0xc" identifier + number_literal) != identifier) )) (compound_statement "{\n    FUN_0031eea8(local_24 + -0xc,&local_28);\n  }" { (expression_statement "FUN_0031eea8(local_24 + -0xc,&local_28);" (call_expression "FUN_0031eea8(local_24 + -0xc,&local_28)" identifier (argument_list "(local_24 + -0xc,&local_28)" ( (binary_expression "local_24 + -0xc" identifier + number_literal) , (pointer_expression "&local_28" & 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)) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) < BOOL) > IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) < BOOL) > IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (call_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < IDENT) > IDENT) )) (argument_list ( IDENT , IDENT , IDENT , (pointer_expression & IDENT) , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "undefined4 * FUN_00332508(undefined4 *param_1)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  undefined4 in_stack_00000010;\n  undefined4 in_stack_00000014;\n  char in_stack_0000001b;\n  undefined4 in_stack_0000001c;\n  undefined4 in_stack_00000020;\n  undefined4 in_stack_00000024;\n  undefined4 uVar4;\n  undefined **ppuVar5;\n  undefined4 local_28;\n  undefined *local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  \n  puVar1 = PTR__S_empty_rep_storage_004322d0;\n  local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc;\n  pcVar3 = (code *)PTR__M_extract<false>_00433c0c;\n  if (in_stack_0000001b != '\0') {\n    pcVar3 = (code *)PTR__M_extract<true>_00433c08;\n  }\n  ppuVar5 = &local_24;\n  uVar4 = in_stack_00000020;\n                    \n  (*pcVar3)(&local_20);\n  puVar2 = local_24;\n  local_28 = (*(code *)PTR__S_get_c_locale_00432354)();\n  (*(code *)PTR___convert_to_v<long_double>_00433944)\n            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5);\n  *param_1 = local_20;\n  param_1[1] = local_1c;\n  if (local_24 + -0xc != puVar1) {\n    FUN_0031eea8(local_24 + -0xc,&local_28);\n  }\n  return param_1;\n}" (type_identifier "undefined4") (pointer_declarator "* FUN_00332508(undefined4 *param_1)" (* "*") (function_declarator "FUN_00332508(undefined4 *param_1)" (identifier "FUN_00332508") (parameter_list "(undefined4 *param_1)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")")))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  code *pcVar3;\n  undefined4 in_stack_00000010;\n  undefined4 in_stack_00000014;\n  char in_stack_0000001b;\n  undefined4 in_stack_0000001c;\n  undefined4 in_stack_00000020;\n  undefined4 in_stack_00000024;\n  undefined4 uVar4;\n  undefined **ppuVar5;\n  undefined4 local_28;\n  undefined *local_24;\n  undefined4 local_20;\n  undefined4 local_1c;\n  \n  puVar1 = PTR__S_empty_rep_storage_004322d0;\n  local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc;\n  pcVar3 = (code *)PTR__M_extract<false>_00433c0c;\n  if (in_stack_0000001b != '\0') {\n    pcVar3 = (code *)PTR__M_extract<true>_00433c08;\n  }\n  ppuVar5 = &local_24;\n  uVar4 = in_stack_00000020;\n                    \n  (*pcVar3)(&local_20);\n  puVar2 = local_24;\n  local_28 = (*(code *)PTR__S_get_c_locale_00432354)();\n  (*(code *)PTR___convert_to_v<long_double>_00433944)\n            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5);\n  *param_1 = local_20;\n  param_1[1] = local_1c;\n  if (local_24 + -0xc != puVar1) {\n    FUN_0031eea8(local_24 + -0xc,&local_28);\n  }\n  return param_1;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "code *pcVar3;" (type_identifier "code") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "undefined4 in_stack_00000010;" (type_identifier "undefined4") (identifier "in_stack_00000010") (; ";")) (declaration "undefined4 in_stack_00000014;" (type_identifier "undefined4") (identifier "in_stack_00000014") (; ";")) (declaration "char in_stack_0000001b;" (primitive_type "char") (identifier "in_stack_0000001b") (; ";")) (declaration "undefined4 in_stack_0000001c;" (type_identifier "undefined4") (identifier "in_stack_0000001c") (; ";")) (declaration "undefined4 in_stack_00000020;" (type_identifier "undefined4") (identifier "in_stack_00000020") (; ";")) (declaration "undefined4 in_stack_00000024;" (type_identifier "undefined4") (identifier "in_stack_00000024") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined **ppuVar5;" (type_identifier "undefined") (pointer_declarator "**ppuVar5" (* "*") (pointer_declarator "*ppuVar5" (* "*") (identifier "ppuVar5"))) (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "undefined *local_24;" (type_identifier "undefined") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined4 local_1c;" (type_identifier "undefined4") (identifier "local_1c") (; ";")) (expression_statement "puVar1 = PTR__S_empty_rep_storage_004322d0;" (assignment_expression "puVar1 = PTR__S_empty_rep_storage_004322d0" (identifier "puVar1") (= "=") (identifier "PTR__S_empty_rep_storage_004322d0")) (; ";")) (expression_statement "local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc;" (assignment_expression "local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc" (identifier "local_24") (= "=") (binary_expression "PTR__S_empty_rep_storage_004322d0 + 0xc" (identifier "PTR__S_empty_rep_storage_004322d0") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "pcVar3 = (code *)PTR__M_extract<false>_00433c0c;" (assignment_expression "pcVar3 = (code *)PTR__M_extract<false>_00433c0c" (identifier "pcVar3") (= "=") (binary_expression "(code *)PTR__M_extract<false>_00433c0c" (binary_expression "(code *)PTR__M_extract<false" (cast_expression "(code *)PTR__M_extract" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_extract")) (< "<") (false "false")) (> ">") (identifier "_00433c0c"))) (; ";")) (if_statement "if (in_stack_0000001b != '\0') {\n    pcVar3 = (code *)PTR__M_extract<true>_00433c08;\n  }" (if "if") (parenthesized_expression "(in_stack_0000001b != '\0')" (( "(") (binary_expression "in_stack_0000001b != '\0'" (identifier "in_stack_0000001b") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    pcVar3 = (code *)PTR__M_extract<true>_00433c08;\n  }" ({ "{") (expression_statement "pcVar3 = (code *)PTR__M_extract<true>_00433c08;" (assignment_expression "pcVar3 = (code *)PTR__M_extract<true>_00433c08" (identifier "pcVar3") (= "=") (binary_expression "(code *)PTR__M_extract<true>_00433c08" (binary_expression "(code *)PTR__M_extract<true" (cast_expression "(code *)PTR__M_extract" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_extract")) (< "<") (true "true")) (> ">") (identifier "_00433c08"))) (; ";")) (} "}"))) (expression_statement "ppuVar5 = &local_24;" (assignment_expression "ppuVar5 = &local_24" (identifier "ppuVar5") (= "=") (pointer_expression "&local_24" (& "&") (identifier "local_24"))) (; ";")) (expression_statement "uVar4 = in_stack_00000020;" (assignment_expression "uVar4 = in_stack_00000020" (identifier "uVar4") (= "=") (identifier "in_stack_00000020")) (; ";")) (expression_statement "(*pcVar3)(&local_20);" (call_expression "(*pcVar3)(&local_20)" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "(&local_20)" (( "(") (pointer_expression "&local_20" (& "&") (identifier "local_20")) () ")"))) (; ";")) (expression_statement "puVar2 = local_24;" (assignment_expression "puVar2 = local_24" (identifier "puVar2") (= "=") (identifier "local_24")) (; ";")) (expression_statement "local_28 = (*(code *)PTR__S_get_c_locale_00432354)();" (assignment_expression "local_28 = (*(code *)PTR__S_get_c_locale_00432354)()" (identifier "local_28") (= "=") (call_expression "(*(code *)PTR__S_get_c_locale_00432354)()" (parenthesized_expression "(*(code *)PTR__S_get_c_locale_00432354)" (( "(") (pointer_expression "*(code *)PTR__S_get_c_locale_00432354" (* "*") (cast_expression "(code *)PTR__S_get_c_locale_00432354" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__S_get_c_locale_00432354"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "(*(code *)PTR___convert_to_v<long_double>_00433944)\n            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5);" (call_expression "(*(code *)PTR___convert_to_v<long_double>_00433944)\n            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5)" (parenthesized_expression "(*(code *)PTR___convert_to_v<long_double>_00433944)" (( "(") (binary_expression "*(code *)PTR___convert_to_v<long_double>_00433944" (binary_expression "*(code *)PTR___convert_to_v<long_double" (pointer_expression "*(code *)PTR___convert_to_v" (* "*") (cast_expression "(code *)PTR___convert_to_v" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___convert_to_v"))) (< "<") (identifier "long_double")) (> ">") (identifier "_00433944")) () ")")) (argument_list "(puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,\n             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5)" (( "(") (identifier "puVar2") (, ",") (identifier "in_stack_00000024") (, ",") (identifier "in_stack_00000020") (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) (, ",") (identifier "in_stack_00000010") (, ",") (identifier "in_stack_00000014") (, ",") (identifier "in_stack_0000001c") (, ",") (identifier "uVar4") (, ",") (identifier "ppuVar5") () ")"))) (; ";")) (expression_statement "*param_1 = local_20;" (assignment_expression "*param_1 = local_20" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "local_20")) (; ";")) (expression_statement "param_1[1] = local_1c;" (assignment_expression "param_1[1] = local_1c" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_1c")) (; ";")) (if_statement "if (local_24 + -0xc != puVar1) {\n    FUN_0031eea8(local_24 + -0xc,&local_28);\n  }" (if "if") (parenthesized_expression "(local_24 + -0xc != puVar1)" (( "(") (binary_expression "local_24 + -0xc != puVar1" (binary_expression "local_24 + -0xc" (identifier "local_24") (+ "+") (number_literal "-0xc")) (!= "!=") (identifier "puVar1")) () ")")) (compound_statement "{\n    FUN_0031eea8(local_24 + -0xc,&local_28);\n  }" ({ "{") (expression_statement "FUN_0031eea8(local_24 + -0xc,&local_28);" (call_expression "FUN_0031eea8(local_24 + -0xc,&local_28)" (identifier "FUN_0031eea8") (argument_list "(local_24 + -0xc,&local_28)" (( "(") (binary_expression "local_24 + -0xc" (identifier "local_24") (+ "+") (number_literal "-0xc")) (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) () ")"))) (; ";")) (} "}"))) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))

/* std::money_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<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_4 *
std::money_get<var_2,std::istreambuf_iterator<var_2,std::var_1<var_2>>>::var_3
          (var_4 *var_5)

{
  type_1 *puVar1;
  type_1 *puVar2;
  type_2 *pcVar3;
  var_4 in_stack_00000010;
  var_4 in_stack_00000014;
  char var_8;
  var_4 in_stack_0000001c;
  var_4 in_stack_00000020;
  var_4 in_stack_00000024;
  var_4 uVar4;
  type_1 **ppuVar5;
  var_4 local_28;
  type_1 *var_12;
  var_4 local_20;
  var_4 local_1c;
  
  puVar1 = var_6;
  var_12 = var_6 + 0xc;
  pcVar3 = (type_2 *)PTR__M_extract<false>var_7;
  if (var_8 != '\0') {
    pcVar3 = (type_2 *)PTR__M_extract<true>var_9;
  }
  ppuVar5 = &var_12;
  uVar4 = in_stack_00000020;
                    /* try { // try from 00332580 to 003325a7 has its CatchHandler @ 00332630 */
  (*pcVar3)(&local_20);
  puVar2 = var_12;
  local_28 = (*(type_2 *)PTR__S_get_c_locale_00432354)();
  (*(type_2 *)PTR___convert_to_v<var_10>var_11)
            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,
             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5);
  *var_5 = local_20;
  var_5[1] = local_1c;
  if ((type_3 *)(var_12 + -0xc) != (type_3 *)puVar1) {
    std::string::_Rep::var_13((type_3 *)(var_12 + -0xc));
  }
  return var_5;
}


(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)))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) right: (false)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) right: (true)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (expression_statement (call_expression function: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier)) right: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (pointer_expression argument: (identifier)) (identifier) (identifier) (identifier) (identifier) (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier))))))) (return_statement (identifier)))))

undefined4 * MASKED(undefined4 *param_1)

{
  undefined *puVar1;
  undefined *puVar2;
  code *pcVar3;
  undefined4 in_stack_00000010;
  undefined4 in_stack_00000014;
  char in_stack_0000001b;
  undefined4 in_stack_0000001c;
  undefined4 in_stack_00000020;
  undefined4 in_stack_00000024;
  undefined4 uVar4;
  undefined **ppuVar5;
  undefined4 local_28;
  undefined *local_24;
  undefined4 local_20;
  undefined4 local_1c;
  
  puVar1 = PTR__S_empty_rep_storage_004322d0;
  local_24 = PTR__S_empty_rep_storage_004322d0 + 0xc;
  pcVar3 = (code *)PTR__M_extract<false>_00433c0c;
  if (in_stack_0000001b != '\0') {
    pcVar3 = (code *)PTR__M_extract<true>_00433c08;
  }
  ppuVar5 = &local_24;
  uVar4 = in_stack_00000020;
                    /* try { // try from 00332580 to 003325a7 has its CatchHandler @ 00332630 */
  (*pcVar3)(&local_20);
  puVar2 = local_24;
  local_28 = (*(code *)PTR__S_get_c_locale_00432354)();
  (*(code *)PTR___convert_to_v<long_double>_00433944)
            (puVar2,in_stack_00000024,in_stack_00000020,&local_28,in_stack_00000010,
             in_stack_00000014,in_stack_0000001c,uVar4,ppuVar5);
  *param_1 = local_20;
  param_1[1] = local_1c;
  if (local_24 + -0xc != puVar1) {
    FUN_0031eea8(local_24 + -0xc,&local_28);
  }
  return param_1;
}

