
/* WARNING: Removing unreachable block (ram,0x004d40b3) */
/* std::__facet_shims::(anonymous
   namespace)::money_get_shim<char>::do_get(std::istreambuf_iterator<char, std::char_traits<char> >,
   std::istreambuf_iterator<char, std::char_traits<char> >, bool, std::ios_base&,
   std::_Ios_Iostate&, std::string&) const */

undefined1  [16]
std::__facet_shims::(anonymous_namespace)::money_get_shim<char>::do_get
          (long param_1,undefined8 param_2,ulong param_3)

{
  undefined8 uVar1;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *__dest;
  undefined1 auVar2 [16];
  undefined8 *in_stack_00000018;
  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_88;
  long local_68;
  long local_60;
  code *local_48;
  
  local_48 = (code *)0x0;
                    /* try { // try from 004d4075 to 004d4079 has its CatchHandler @ 004d41dc */
  auVar2 = __money_get<char>(*(__facet_shims **)(param_1 + 0x10));
  if (local_48 == (code *)0x0) {
                    /* WARNING: Subroutine does not return */
    __throw_logic_error("uninitialized __any_string");
  }
  local_88._M_dataplus._M_p = (pointer)&local_88.field_2;
                    /* try { // try from 004d4103 to 004d41db has its CatchHandler @ 004d41dc */
  __cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char_const*>(&local_88,local_68,local_60 + local_68);
  __dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
            *)*in_stack_00000018;
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)local_88._M_dataplus._M_p == &local_88.field_2) {
    if (local_88._M_string_length != 0) {
      if (local_88._M_string_length == 1) {
        __dest->_M_local_buf[0] = local_88.field_2._M_local_buf[0];
        __dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                  *)*in_stack_00000018;
      }
      else {
        memcpy(__dest,local_88._M_dataplus._M_p,local_88._M_string_length);
        __dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                  *)*in_stack_00000018;
      }
    }
    in_stack_00000018[1] = local_88._M_string_length;
    __dest->_M_local_buf[local_88._M_string_length] = '\0';
    uVar1 = local_88.field_2._M_allocated_capacity;
  }
  else {
    if (__dest == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                   *)(in_stack_00000018 + 2)) {
      *in_stack_00000018 = local_88._M_dataplus._M_p;
      in_stack_00000018[1] = local_88._M_string_length;
      in_stack_00000018[2] = local_88.field_2._M_allocated_capacity;
    }
    else {
      uVar1 = in_stack_00000018[2];
      *in_stack_00000018 = local_88._M_dataplus._M_p;
      in_stack_00000018[1] = local_88._M_string_length;
      in_stack_00000018[2] = local_88.field_2._M_allocated_capacity;
      local_88._M_dataplus._M_p = (pointer)__dest;
      if (__dest != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                     *)0x0) goto LAB_004d4147;
    }
    local_88._M_dataplus._M_p = (pointer)&local_88.field_2;
    uVar1 = local_88.field_2._M_allocated_capacity;
  }
LAB_004d4147:
  local_88.field_2._M_allocated_capacity = uVar1;
  local_88._M_string_length = 0;
  *local_88._M_dataplus._M_p = '\0';
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)local_88._M_dataplus._M_p != &local_88.field_2) {
    operator_delete(local_88._M_dataplus._M_p);
  }
  if (local_48 != (code *)0x0) {
    (*local_48)(&local_68);
  }
  auVar2._8_8_ = param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff;
  return auVar2;
}



/* WARNING: Removing unreachable block (ram,0x004d40b3) */

undefined1  [16] FUN_004d4030(long param_1,undefined8 param_2,ulong param_3)

{
  undefined8 uVar1;
  undefined8 *__dest;
  undefined1 auVar2 [16];
  undefined8 *in_stack_00000018;
  undefined8 *local_88;
  size_t local_80;
  undefined8 local_78 [2];
  long local_68;
  long local_60;
  code *local_48;
  
  local_48 = (code *)0x0;
                    /* try { // try from 004d4075 to 004d4079 has its CatchHandler @ 004d41dc */
  auVar2 = FUN_004dad80(*(undefined8 *)(param_1 + 0x10));
  if (local_48 == (code *)0x0) {
                    /* WARNING: Subroutine does not return */
    FUN_004dcba0("uninitialized __any_string");
  }
  local_88 = local_78;
                    /* try { // try from 004d4103 to 004d41db has its CatchHandler @ 004d41dc */
  FUN_001a61c0(&local_88,local_68,local_60 + local_68);
  __dest = (undefined8 *)*in_stack_00000018;
  if (local_88 == local_78) {
    if (local_80 != 0) {
      if (local_80 == 1) {
        *(undefined1 *)__dest = (undefined1)local_78[0];
        __dest = (undefined8 *)*in_stack_00000018;
      }
      else {
        memcpy(__dest,local_88,local_80);
        __dest = (undefined8 *)*in_stack_00000018;
      }
    }
    in_stack_00000018[1] = local_80;
    *(undefined1 *)((long)__dest + local_80) = 0;
    uVar1 = local_78[0];
  }
  else {
    if (__dest == in_stack_00000018 + 2) {
      *in_stack_00000018 = local_88;
      in_stack_00000018[1] = local_80;
      in_stack_00000018[2] = local_78[0];
    }
    else {
      uVar1 = in_stack_00000018[2];
      *in_stack_00000018 = local_88;
      in_stack_00000018[1] = local_80;
      in_stack_00000018[2] = local_78[0];
      local_88 = __dest;
      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;
    }
    local_88 = local_78;
    uVar1 = local_78[0];
  }
LAB_004d4147:
  local_78[0] = uVar1;
  local_80 = 0;
  *(undefined1 *)local_88 = 0;
  if (local_88 != local_78) {
    FUN_0049e330();
  }
  if (local_48 != (code *)0x0) {
    (*local_48)(&local_68);
  }
  auVar2._8_8_ = param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff;
  return auVar2;
}


PUSH RBP
MOVZX R9D,R9B
MOV RBP,RSP
PUSH R15
PUSH R14
LEA RAX,[RBP + -0x84]
PUSH R13
PUSH R12
LEA R12,[RBP + -0x60]
PUSH RBX
MOV RBX,RDX
SUB RSP,0x78
MOV RDI,qword ptr [RDI + 0x10]
MOV R13,qword ptr [RBP + 0x20]
MOV qword ptr [RBP + -0x40],0x0
PUSH R12
PUSH 0x0
PUSH RAX
PUSH qword ptr [RBP + 0x10]
MOV dword ptr [RBP + -0x84],0x0
CALL 0x004dad80
MOV qword ptr [RBP + -0x98],RDX
MOV R15,RAX
ADD RSP,0x20
MOV RDX,-0x100000000
AND RBX,RDX
MOV qword ptr [RBP + -0xa0],RAX
MOV EDX,dword ptr [RBP + -0x84]
MOV EAX,dword ptr [RBP + -0x98]
OR RBX,RAX
MOV RAX,qword ptr [RBP + -0x40]
TEST EDX,EDX
JZ 0x004d40e0
MOV RCX,qword ptr [RBP + 0x18]
MOV dword ptr [RCX],EDX
TEST RAX,RAX
JZ 0x004d40c3
MOV RDI,R12
CALL RAX
LEA RSP,[RBP + -0x28]
MOV RAX,R15
MOV RDX,RBX
POP RBX
POP R12
POP R13
POP R14
POP R15
POP RBP
RET
TEST RAX,RAX
JZ 0x004d41d0
MOV RSI,qword ptr [RBP + -0x60]
MOV RDX,qword ptr [RBP + -0x58]
LEA R14,[RBP + -0x80]
LEA RAX,[R14 + 0x10]
MOV RDI,R14
ADD RDX,RSI
MOV qword ptr [RBP + -0x80],RAX
CALL 0x001a61c0
MOV RSI,qword ptr [RBP + -0x80]
LEA RAX,[R14 + 0x10]
MOV RDI,qword ptr [R13]
MOV RDX,qword ptr [RBP + -0x78]
CMP RSI,RAX
JZ 0x004d4190
LEA RCX,[R13 + 0x10]
MOV RAX,qword ptr [RBP + -0x70]
CMP RDI,RCX
JZ 0x004d4170
MOV RCX,qword ptr [R13 + 0x10]
MOV qword ptr [R13],RSI
MOV qword ptr [R13 + 0x8],RDX
MOV qword ptr [R13 + 0x10],RAX
TEST RDI,RDI
JZ 0x004d417c
MOV qword ptr [RBP + -0x80],RDI
MOV qword ptr [RBP + -0x70],RCX
MOV qword ptr [RBP + -0x78],0x0
ADD R14,0x10
MOV byte ptr [RDI],0x0
MOV RDI,qword ptr [RBP + -0x80]
CMP RDI,R14
JZ 0x004d4164
CALL 0x0049e330
MOV RAX,qword ptr [RBP + -0x40]
JMP 0x004d40b9
MOV qword ptr [R13],RSI
MOV qword ptr [R13 + 0x8],RDX
MOV qword ptr [R13 + 0x10],RAX
LEA RDI,[R14 + 0x10]
MOV qword ptr [RBP + -0x80],RDI
JMP 0x004d4147
TEST RDX,RDX
JZ 0x004d41a8
CMP RDX,0x1
JZ 0x004d41c0
CALL 0x00177aa0
MOV RDX,qword ptr [RBP + -0x78]
MOV RDI,qword ptr [R13]
MOV qword ptr [R13 + 0x8],RDX
MOV byte ptr [RDI + RDX*0x1],0x0
MOV RDI,qword ptr [RBP + -0x80]
JMP 0x004d4147
MOVZX EAX,byte ptr [RBP + -0x70]
MOV byte ptr [RDI],AL
MOV RDX,qword ptr [RBP + -0x78]
MOV RDI,qword ptr [R13]
JMP 0x004d41a8
LEA RDI,[0x58bfe4]
CALL 0x004dcba0
(translation_unit "/* WARNING: Removing unreachable block (ram,0x004d40b3) */\n\nundefined1  [16] FUN_004d4030(long param_1,undefined8 param_2,ulong param_3)\n\n{\n  undefined8 uVar1;\n  undefined8 *__dest;\n  undefined1 auVar2 [16];\n  undefined8 *in_stack_00000018;\n  undefined8 *local_88;\n  size_t local_80;\n  undefined8 local_78 [2];\n  long local_68;\n  long local_60;\n  code *local_48;\n  \n  local_48 = (code *)0x0;\n                    /* try { // try from 004d4075 to 004d4079 has its CatchHandler @ 004d41dc */\n  auVar2 = FUN_004dad80(*(undefined8 *)(param_1 + 0x10));\n  if (local_48 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_004dcba0("uninitialized __any_string");\n  }\n  local_88 = local_78;\n                    /* try { // try from 004d4103 to 004d41db has its CatchHandler @ 004d41dc */\n  FUN_001a61c0(&local_88,local_68,local_60 + local_68);\n  __dest = (undefined8 *)*in_stack_00000018;\n  if (local_88 == local_78) {\n    if (local_80 != 0) {\n      if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n    }\n    in_stack_00000018[1] = local_80;\n    *(undefined1 *)((long)__dest + local_80) = 0;\n    uVar1 = local_78[0];\n  }\n  else {\n    if (__dest == in_stack_00000018 + 2) {\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }\n    local_88 = local_78;\n    uVar1 = local_78[0];\n  }\nLAB_004d4147:\n  local_78[0] = uVar1;\n  local_80 = 0;\n  *(undefined1 *)local_88 = 0;\n  if (local_88 != local_78) {\n    FUN_0049e330();\n  }\n  if (local_48 != (code *)0x0) {\n    (*local_48)(&local_68);\n  }\n  auVar2._8_8_ = param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff;\n  return auVar2;\n}\n\n" comment (expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" identifier [ number_literal ]) ;) (macro_type_specifier "FUN_004d4030(long param_1,undefined8 param_2,ulong param_3)" identifier ( (type_descriptor "long param_1" (sized_type_specifier "long param_1" long type_identifier)) (ERROR ",undefined8 param_2,ulong param_3" , identifier identifier , identifier identifier) )) ; (compound_statement "{\n  undefined8 uVar1;\n  undefined8 *__dest;\n  undefined1 auVar2 [16];\n  undefined8 *in_stack_00000018;\n  undefined8 *local_88;\n  size_t local_80;\n  undefined8 local_78 [2];\n  long local_68;\n  long local_60;\n  code *local_48;\n  \n  local_48 = (code *)0x0;\n                    /* try { // try from 004d4075 to 004d4079 has its CatchHandler @ 004d41dc */\n  auVar2 = FUN_004dad80(*(undefined8 *)(param_1 + 0x10));\n  if (local_48 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_004dcba0("uninitialized __any_string");\n  }\n  local_88 = local_78;\n                    /* try { // try from 004d4103 to 004d41db has its CatchHandler @ 004d41dc */\n  FUN_001a61c0(&local_88,local_68,local_60 + local_68);\n  __dest = (undefined8 *)*in_stack_00000018;\n  if (local_88 == local_78) {\n    if (local_80 != 0) {\n      if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n    }\n    in_stack_00000018[1] = local_80;\n    *(undefined1 *)((long)__dest + local_80) = 0;\n    uVar1 = local_78[0];\n  }\n  else {\n    if (__dest == in_stack_00000018 + 2) {\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }\n    local_88 = local_78;\n    uVar1 = local_78[0];\n  }\nLAB_004d4147:\n  local_78[0] = uVar1;\n  local_80 = 0;\n  *(undefined1 *)local_88 = 0;\n  if (local_88 != local_78) {\n    FUN_0049e330();\n  }\n  if (local_48 != (code *)0x0) {\n    (*local_48)(&local_68);\n  }\n  auVar2._8_8_ = param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff;\n  return auVar2;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "undefined8 *__dest;" type_identifier (pointer_declarator "*__dest" * identifier) ;) (declaration "undefined1 auVar2 [16];" type_identifier (array_declarator "auVar2 [16]" identifier [ number_literal ]) ;) (declaration "undefined8 *in_stack_00000018;" type_identifier (pointer_declarator "*in_stack_00000018" * identifier) ;) (declaration "undefined8 *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "size_t local_80;" primitive_type identifier ;) (declaration "undefined8 local_78 [2];" type_identifier (array_declarator "local_78 [2]" identifier [ number_literal ]) ;) (declaration "long local_68;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_60;" (sized_type_specifier "long" long) identifier ;) (declaration "code *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (expression_statement "local_48 = (code *)0x0;" (assignment_expression "local_48 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (expression_statement "auVar2 = FUN_004dad80(*(undefined8 *)(param_1 + 0x10));" (assignment_expression "auVar2 = FUN_004dad80(*(undefined8 *)(param_1 + 0x10))" identifier = (call_expression "FUN_004dad80(*(undefined8 *)(param_1 + 0x10))" identifier (argument_list "(*(undefined8 *)(param_1 + 0x10))" ( (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (local_48 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_004dcba0("uninitialized __any_string");\n  }" if (parenthesized_expression "(local_48 == (code *)0x0)" ( (binary_expression "local_48 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_004dcba0("uninitialized __any_string");\n  }" { comment (expression_statement "FUN_004dcba0("uninitialized __any_string");" (call_expression "FUN_004dcba0("uninitialized __any_string")" identifier (argument_list "("uninitialized __any_string")" ( (string_literal ""uninitialized __any_string"" " string_content ") ))) ;) })) (expression_statement "local_88 = local_78;" (assignment_expression "local_88 = local_78" identifier = identifier) ;) comment (expression_statement "FUN_001a61c0(&local_88,local_68,local_60 + local_68);" (call_expression "FUN_001a61c0(&local_88,local_68,local_60 + local_68)" identifier (argument_list "(&local_88,local_68,local_60 + local_68)" ( (pointer_expression "&local_88" & identifier) , identifier , (binary_expression "local_60 + local_68" identifier + identifier) ))) ;) (expression_statement "__dest = (undefined8 *)*in_stack_00000018;" (assignment_expression "__dest = (undefined8 *)*in_stack_00000018" identifier = (cast_expression "(undefined8 *)*in_stack_00000018" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_stack_00000018" * identifier))) ;) (if_statement "if (local_88 == local_78) {\n    if (local_80 != 0) {\n      if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n    }\n    in_stack_00000018[1] = local_80;\n    *(undefined1 *)((long)__dest + local_80) = 0;\n    uVar1 = local_78[0];\n  }\n  else {\n    if (__dest == in_stack_00000018 + 2) {\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }\n    local_88 = local_78;\n    uVar1 = local_78[0];\n  }" if (parenthesized_expression "(local_88 == local_78)" ( (binary_expression "local_88 == local_78" identifier == identifier) )) (compound_statement "{\n    if (local_80 != 0) {\n      if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n    }\n    in_stack_00000018[1] = local_80;\n    *(undefined1 *)((long)__dest + local_80) = 0;\n    uVar1 = local_78[0];\n  }" { (if_statement "if (local_80 != 0) {\n      if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n    }" if (parenthesized_expression "(local_80 != 0)" ( (binary_expression "local_80 != 0" identifier != number_literal) )) (compound_statement "{\n      if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n    }" { (if_statement "if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }" if (parenthesized_expression "(local_80 == 1)" ( (binary_expression "local_80 == 1" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }" { (expression_statement "*(undefined1 *)__dest = (undefined1)local_78[0];" (assignment_expression "*(undefined1 *)__dest = (undefined1)local_78[0]" (pointer_expression "*(undefined1 *)__dest" * (cast_expression "(undefined1 *)__dest" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined1)local_78[0]" ( (type_descriptor "undefined1" type_identifier) ) (subscript_expression "local_78[0]" identifier [ number_literal ]))) ;) (expression_statement "__dest = (undefined8 *)*in_stack_00000018;" (assignment_expression "__dest = (undefined8 *)*in_stack_00000018" identifier = (cast_expression "(undefined8 *)*in_stack_00000018" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_stack_00000018" * identifier))) ;) }) (else_clause "else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }" else (compound_statement "{\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }" { (expression_statement "memcpy(__dest,local_88,local_80);" (call_expression "memcpy(__dest,local_88,local_80)" identifier (argument_list "(__dest,local_88,local_80)" ( identifier , identifier , identifier ))) ;) (expression_statement "__dest = (undefined8 *)*in_stack_00000018;" (assignment_expression "__dest = (undefined8 *)*in_stack_00000018" identifier = (cast_expression "(undefined8 *)*in_stack_00000018" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_stack_00000018" * identifier))) ;) }))) })) (expression_statement "in_stack_00000018[1] = local_80;" (assignment_expression "in_stack_00000018[1] = local_80" (subscript_expression "in_stack_00000018[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((long)__dest + local_80) = 0;" (assignment_expression "*(undefined1 *)((long)__dest + local_80) = 0" (pointer_expression "*(undefined1 *)((long)__dest + local_80)" * (cast_expression "(undefined1 *)((long)__dest + local_80)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__dest + local_80)" ( (binary_expression "(long)__dest + local_80" (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar1 = local_78[0];" (assignment_expression "uVar1 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    if (__dest == in_stack_00000018 + 2) {\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }\n    local_88 = local_78;\n    uVar1 = local_78[0];\n  }" else (compound_statement "{\n    if (__dest == in_stack_00000018 + 2) {\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }\n    local_88 = local_78;\n    uVar1 = local_78[0];\n  }" { (if_statement "if (__dest == in_stack_00000018 + 2) {\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }" if (parenthesized_expression "(__dest == in_stack_00000018 + 2)" ( (binary_expression "__dest == in_stack_00000018 + 2" identifier == (binary_expression "in_stack_00000018 + 2" identifier + number_literal)) )) (compound_statement "{\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }" { (expression_statement "*in_stack_00000018 = local_88;" (assignment_expression "*in_stack_00000018 = local_88" (pointer_expression "*in_stack_00000018" * identifier) = identifier) ;) (expression_statement "in_stack_00000018[1] = local_80;" (assignment_expression "in_stack_00000018[1] = local_80" (subscript_expression "in_stack_00000018[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "in_stack_00000018[2] = local_78[0];" (assignment_expression "in_stack_00000018[2] = local_78[0]" (subscript_expression "in_stack_00000018[2]" identifier [ number_literal ]) = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }" else (compound_statement "{\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }" { (expression_statement "uVar1 = in_stack_00000018[2];" (assignment_expression "uVar1 = in_stack_00000018[2]" identifier = (subscript_expression "in_stack_00000018[2]" identifier [ number_literal ])) ;) (expression_statement "*in_stack_00000018 = local_88;" (assignment_expression "*in_stack_00000018 = local_88" (pointer_expression "*in_stack_00000018" * identifier) = identifier) ;) (expression_statement "in_stack_00000018[1] = local_80;" (assignment_expression "in_stack_00000018[1] = local_80" (subscript_expression "in_stack_00000018[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "in_stack_00000018[2] = local_78[0];" (assignment_expression "in_stack_00000018[2] = local_78[0]" (subscript_expression "in_stack_00000018[2]" identifier [ number_literal ]) = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (expression_statement "local_88 = __dest;" (assignment_expression "local_88 = __dest" identifier = identifier) ;) (if_statement "if (__dest != (undefined8 *)0x0) goto LAB_004d4147;" if (parenthesized_expression "(__dest != (undefined8 *)0x0)" ( (binary_expression "__dest != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_004d4147;" goto statement_identifier ;)) }))) (expression_statement "local_88 = local_78;" (assignment_expression "local_88 = local_78" identifier = identifier) ;) (expression_statement "uVar1 = local_78[0];" (assignment_expression "uVar1 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) }))) (labeled_statement "LAB_004d4147:\n  local_78[0] = uVar1;" statement_identifier : (expression_statement "local_78[0] = uVar1;" (assignment_expression "local_78[0] = uVar1" (subscript_expression "local_78[0]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)local_88 = 0;" (assignment_expression "*(undefined1 *)local_88 = 0" (pointer_expression "*(undefined1 *)local_88" * (cast_expression "(undefined1 *)local_88" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (local_88 != local_78) {\n    FUN_0049e330();\n  }" if (parenthesized_expression "(local_88 != local_78)" ( (binary_expression "local_88 != local_78" identifier != identifier) )) (compound_statement "{\n    FUN_0049e330();\n  }" { (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_48 != (code *)0x0) {\n    (*local_48)(&local_68);\n  }" if (parenthesized_expression "(local_48 != (code *)0x0)" ( (binary_expression "local_48 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*local_48)(&local_68);\n  }" { (expression_statement "(*local_48)(&local_68);" (call_expression "(*local_48)(&local_68)" (parenthesized_expression "(*local_48)" ( (pointer_expression "*local_48" * identifier) )) (argument_list "(&local_68)" ( (pointer_expression "&local_68" & identifier) ))) ;) })) (expression_statement "auVar2._8_8_ = param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff;" (assignment_expression "auVar2._8_8_ = param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff" (field_expression "auVar2._8_8_" identifier . field_identifier) = (binary_expression "param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff" (binary_expression "param_3 & 0xffffffff00000000" identifier & number_literal) | (binary_expression "auVar2._8_8_ & 0xffffffff" (field_expression "auVar2._8_8_" identifier . field_identifier) & number_literal))) ;) (return_statement "return auVar2;" return identifier ;) }))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x004d40b3) */\n/* std::__facet_shims::(anonymous\n   namespace)::money_get_shim<char>::do_get(std::istreambuf_iterator<char, std::char_traits<char> >,\n   std::istreambuf_iterator<char, std::char_traits<char> >, bool, std::ios_base&,\n   std::_Ios_Iostate&, std::string&) const */\n\nundefined1  [16]\nstd::__facet_shims::(anonymous_namespace)::money_get_shim<char>::do_get\n          (long param_1,undefined8 param_2,ulong param_3)\n\n{\n  undefined8 uVar1;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *__dest;\n  undefined1 auVar2 [16];\n  undefined8 *in_stack_00000018;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_88;\n  long local_68;\n  long local_60;\n  code *local_48;\n  \n  local_48 = (code *)0x0;\n                    /* try { // try from 004d4075 to 004d4079 has its CatchHandler @ 004d41dc */\n  auVar2 = __money_get<char>(*(__facet_shims **)(param_1 + 0x10));\n  if (local_48 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __throw_logic_error("uninitialized __any_string");\n  }\n  local_88._M_dataplus._M_p = (pointer)&local_88.field_2;\n                    /* try { // try from 004d4103 to 004d41db has its CatchHandler @ 004d41dc */\n  __cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&local_88,local_68,local_60 + local_68);\n  __dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n            *)*in_stack_00000018;\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_88._M_dataplus._M_p == &local_88.field_2) {\n    if (local_88._M_string_length != 0) {\n      if (local_88._M_string_length == 1) {\n        __dest->_M_local_buf[0] = local_88.field_2._M_local_buf[0];\n        __dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88._M_dataplus._M_p,local_88._M_string_length);\n        __dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018;\n      }\n    }\n    in_stack_00000018[1] = local_88._M_string_length;\n    __dest->_M_local_buf[local_88._M_string_length] = '\0';\n    uVar1 = local_88.field_2._M_allocated_capacity;\n  }\n  else {\n    if (__dest == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(in_stack_00000018 + 2)) {\n      *in_stack_00000018 = local_88._M_dataplus._M_p;\n      in_stack_00000018[1] = local_88._M_string_length;\n      in_stack_00000018[2] = local_88.field_2._M_allocated_capacity;\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88._M_dataplus._M_p;\n      in_stack_00000018[1] = local_88._M_string_length;\n      in_stack_00000018[2] = local_88.field_2._M_allocated_capacity;\n      local_88._M_dataplus._M_p = (pointer)__dest;\n      if (__dest != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)0x0) goto LAB_004d4147;\n    }\n    local_88._M_dataplus._M_p = (pointer)&local_88.field_2;\n    uVar1 = local_88.field_2._M_allocated_capacity;\n  }\nLAB_004d4147:\n  local_88.field_2._M_allocated_capacity = uVar1;\n  local_88._M_string_length = 0;\n  *local_88._M_dataplus._M_p = '\0';\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_88._M_dataplus._M_p != &local_88.field_2) {\n    operator_delete(local_88._M_dataplus._M_p);\n  }\n  if (local_48 != (code *)0x0) {\n    (*local_48)(&local_68);\n  }\n  auVar2._8_8_ = param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff;\n  return auVar2;\n}\n\n" comment comment (expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" identifier [ number_literal ]) ;) (labeled_statement "std::__facet_shims::(anonymous_namespace)::money_get_shim<char>::do_get\n          (long param_1,undefined8 param_2,ulong param_3)\n\n{\n  undefined8 uVar1;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *__dest;" statement_identifier (ERROR "::__facet_shims::(anonymous_namespace)::money_get_shim<char>::do_get\n          (long param_1,undefined8 param_2,ulong param_3)\n\n{\n  undefined8 uVar1;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std:" : : (comma_expression "__facet_shims::(anonymous_namespace)::money_get_shim<char>::do_get\n          (long param_1,undefined8 param_2,ulong param_3)\n\n{\n  undefined8 uVar1;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::(anonymous_namespace)::money_get_shim<char>::do_get\n          (long param_1,undefined8 param_2,ulong param_3)\n\n{\n  undefined8 uVar1;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>" : : (parenthesized_expression "(anonymous_namespace)" ( identifier )) : : (binary_expression "money_get_shim<char" identifier < identifier) > : : (ERROR "do_get\n          (long param_1,undefined8 param_2,ulong param_3)" (macro_type_specifier "do_get\n          (long param_1,undefined8 param_2,ulong param_3)" identifier ( (type_descriptor "long param_1" (sized_type_specifier "long param_1" long type_identifier)) (ERROR ",undefined8 param_2,ulong param_3" , identifier identifier , identifier identifier) ))) { (declaration "undefined8 uVar1;" type_identifier identifier ;) (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) :) : (expression_statement "allocator<char>_>_9\n  *__dest;" (binary_expression "allocator<char>_>_9\n  *__dest" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *__dest" identifier * identifier)) ;)) (declaration "undefined1 auVar2 [16];" type_identifier (array_declarator "auVar2 [16]" identifier [ number_literal ]) ;) (declaration "undefined8 *in_stack_00000018;" type_identifier (pointer_declarator "*in_stack_00000018" * identifier) ;) (ERROR "basic_string<char," (binary_expression "basic_string<char" identifier < identifier) ,) (labeled_statement "_std::char_traits<char>,_std::allocator<char>_> local_88;" statement_identifier (ERROR "::char_traits<char>,_std:" : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) :) : (expression_statement "allocator<char>_> local_88;" (binary_expression "allocator<char>_> local_88" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) ;)) (declaration "long local_68;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_60;" (sized_type_specifier "long" long) identifier ;) (declaration "code *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (expression_statement "local_48 = (code *)0x0;" (assignment_expression "local_48 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (expression_statement "auVar2 = __money_get<char>(*(__facet_shims **)(param_1 + 0x10));" (assignment_expression "auVar2 = __money_get<char>(*(__facet_shims **)(param_1 + 0x10))" identifier = (binary_expression "__money_get<char>(*(__facet_shims **)(param_1 + 0x10))" (binary_expression "__money_get<char" identifier < identifier) > (parenthesized_expression "(*(__facet_shims **)(param_1 + 0x10))" ( (pointer_expression "*(__facet_shims **)(param_1 + 0x10)" * (cast_expression "(__facet_shims **)(param_1 + 0x10)" ( (type_descriptor "__facet_shims **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (local_48 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    __throw_logic_error("uninitialized __any_string");\n  }" if (parenthesized_expression "(local_48 == (code *)0x0)" ( (binary_expression "local_48 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __throw_logic_error("uninitialized __any_string");\n  }" { comment (expression_statement "__throw_logic_error("uninitialized __any_string");" (call_expression "__throw_logic_error("uninitialized __any_string")" identifier (argument_list "("uninitialized __any_string")" ( (string_literal ""uninitialized __any_string"" " string_content ") ))) ;) })) (expression_statement "local_88._M_dataplus._M_p = (pointer)&local_88.field_2;" (assignment_expression "local_88._M_dataplus._M_p = (pointer)&local_88.field_2" (field_expression "local_88._M_dataplus._M_p" (field_expression "local_88._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&local_88.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "local_88.field_2" identifier . field_identifier))) ;) comment (labeled_statement "__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>(&local_88,local_68,local_60 + local_68);" statement_identifier (ERROR "::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>(&local_88,local_68,local_60 + local_68);" (binary_expression "_M_construct<char_const*>(&local_88,local_68,local_60 + local_68)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&local_88,local_68,local_60 + local_68)" ( (comma_expression "&local_88,local_68,local_60 + local_68" (pointer_expression "&local_88" & identifier) , (comma_expression "local_68,local_60 + local_68" identifier , (binary_expression "local_60 + local_68" identifier + identifier))) ))) ;)) (expression_statement "__dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n            *)*in_stack_00000018;" (assignment_expression "__dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n            *)*in_stack_00000018" identifier = (binary_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n            *)*in_stack_00000018" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n            *)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) * identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_88._M_dataplus._M_p == &local_88.field_2) {\n    if (local_88._M_string_length != 0) {\n      if (local_88._M_string_length == 1) {\n        __dest->_M_local_buf[0] = local_88.field_2._M_local_buf[0];\n        __dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88._M_dataplus._M_p,local_88._M_string_length);\n        __dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018;\n      }\n    }\n    in_stack_00000018[1] = local_88._M_string_length;\n    __dest->_M_local_buf[local_88._M_string_length] = '\0';\n    uVar1 = local_88.field_2._M_allocated_capacity;\n  }\n  else {\n    if (__dest == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(in_stack_00000018 + 2)) {\n      *in_stack_00000018 = local_88._M_dataplus._M_p;\n      in_stack_00000018[1] = local_88._M_string_length;\n      in_stack_00000018[2] = local_88.field_2._M_allocated_capacity;\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88._M_dataplus._M_p;\n      in_stack_00000018[1] = local_88._M_string_length;\n      in_stack_00000018[2] = local_88.field_2._M_allocated_capacity;\n      local_88._M_dataplus._M_p = (pointer)__dest;\n      if (__dest != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)0x0) goto LAB_004d4147;\n    }\n    local_88._M_dataplus._M_p = (pointer)&local_88.field_2;\n    uVar1 = local_88.field_2._M_allocated_capacity;\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_88._M_dataplus._M_p == &local_88.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_88._M_dataplus._M_p == &local_88.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)local_88._M_dataplus._M_p == &local_88.field_2" (binary_expression "allocator<char>_>_9\n       *)local_88._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)local_88._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "local_88._M_dataplus._M_p" (field_expression "local_88._M_dataplus" identifier . field_identifier) . field_identifier))) == (pointer_expression "&local_88.field_2" & (field_expression "local_88.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n    if (local_88._M_string_length != 0) {\n      if (local_88._M_string_length == 1) {\n        __dest->_M_local_buf[0] = local_88.field_2._M_local_buf[0];\n        __dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88._M_dataplus._M_p,local_88._M_string_length);\n        __dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018;\n      }\n    }\n    in_stack_00000018[1] = local_88._M_string_length;\n    __dest->_M_local_buf[local_88._M_string_length] = '\0';\n    uVar1 = local_88.field_2._M_allocated_capacity;\n  }" { (if_statement "if (local_88._M_string_length != 0) {\n      if (local_88._M_string_length == 1) {\n        __dest->_M_local_buf[0] = local_88.field_2._M_local_buf[0];\n        __dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88._M_dataplus._M_p,local_88._M_string_length);\n        __dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018;\n      }\n    }" if (parenthesized_expression "(local_88._M_string_length != 0)" ( (binary_expression "local_88._M_string_length != 0" (field_expression "local_88._M_string_length" identifier . field_identifier) != number_literal) )) (compound_statement "{\n      if (local_88._M_string_length == 1) {\n        __dest->_M_local_buf[0] = local_88.field_2._M_local_buf[0];\n        __dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88._M_dataplus._M_p,local_88._M_string_length);\n        __dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018;\n      }\n    }" { (if_statement "if (local_88._M_string_length == 1) {\n        __dest->_M_local_buf[0] = local_88.field_2._M_local_buf[0];\n        __dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88._M_dataplus._M_p,local_88._M_string_length);\n        __dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018;\n      }" if (parenthesized_expression "(local_88._M_string_length == 1)" ( (binary_expression "local_88._M_string_length == 1" (field_expression "local_88._M_string_length" identifier . field_identifier) == number_literal) )) (compound_statement "{\n        __dest->_M_local_buf[0] = local_88.field_2._M_local_buf[0];\n        __dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018;\n      }" { (expression_statement "__dest->_M_local_buf[0] = local_88.field_2._M_local_buf[0];" (assignment_expression "__dest->_M_local_buf[0] = local_88.field_2._M_local_buf[0]" (subscript_expression "__dest->_M_local_buf[0]" (field_expression "__dest->_M_local_buf" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "local_88.field_2._M_local_buf[0]" (field_expression "local_88.field_2._M_local_buf" (field_expression "local_88.field_2" identifier . field_identifier) . field_identifier) [ number_literal ])) ;) (expression_statement "__dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018;" (assignment_expression "__dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018" identifier = (binary_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) * identifier)) ;) }) (else_clause "else {\n        memcpy(__dest,local_88._M_dataplus._M_p,local_88._M_string_length);\n        __dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018;\n      }" else (compound_statement "{\n        memcpy(__dest,local_88._M_dataplus._M_p,local_88._M_string_length);\n        __dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018;\n      }" { (expression_statement "memcpy(__dest,local_88._M_dataplus._M_p,local_88._M_string_length);" (call_expression "memcpy(__dest,local_88._M_dataplus._M_p,local_88._M_string_length)" identifier (argument_list "(__dest,local_88._M_dataplus._M_p,local_88._M_string_length)" ( identifier , (field_expression "local_88._M_dataplus._M_p" (field_expression "local_88._M_dataplus" identifier . field_identifier) . field_identifier) , (field_expression "local_88._M_string_length" identifier . field_identifier) ))) ;) (expression_statement "__dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018;" (assignment_expression "__dest = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018" identifier = (binary_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)*in_stack_00000018" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                  *)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) * identifier)) ;) }))) })) (expression_statement "in_stack_00000018[1] = local_88._M_string_length;" (assignment_expression "in_stack_00000018[1] = local_88._M_string_length" (subscript_expression "in_stack_00000018[1]" identifier [ number_literal ]) = (field_expression "local_88._M_string_length" identifier . field_identifier)) ;) (expression_statement "__dest->_M_local_buf[local_88._M_string_length] = '\0';" (assignment_expression "__dest->_M_local_buf[local_88._M_string_length] = '\0'" (subscript_expression "__dest->_M_local_buf[local_88._M_string_length]" (field_expression "__dest->_M_local_buf" identifier -> field_identifier) [ (field_expression "local_88._M_string_length" identifier . field_identifier) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar1 = local_88.field_2._M_allocated_capacity;" (assignment_expression "uVar1 = local_88.field_2._M_allocated_capacity" identifier = (field_expression "local_88.field_2._M_allocated_capacity" (field_expression "local_88.field_2" identifier . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n    if (__dest == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(in_stack_00000018 + 2)) {\n      *in_stack_00000018 = local_88._M_dataplus._M_p;\n      in_stack_00000018[1] = local_88._M_string_length;\n      in_stack_00000018[2] = local_88.field_2._M_allocated_capacity;\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88._M_dataplus._M_p;\n      in_stack_00000018[1] = local_88._M_string_length;\n      in_stack_00000018[2] = local_88.field_2._M_allocated_capacity;\n      local_88._M_dataplus._M_p = (pointer)__dest;\n      if (__dest != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)0x0) goto LAB_004d4147;\n    }\n    local_88._M_dataplus._M_p = (pointer)&local_88.field_2;\n    uVar1 = local_88.field_2._M_allocated_capacity;\n  }" else (compound_statement "{\n    if (__dest == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(in_stack_00000018 + 2)) {\n      *in_stack_00000018 = local_88._M_dataplus._M_p;\n      in_stack_00000018[1] = local_88._M_string_length;\n      in_stack_00000018[2] = local_88.field_2._M_allocated_capacity;\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88._M_dataplus._M_p;\n      in_stack_00000018[1] = local_88._M_string_length;\n      in_stack_00000018[2] = local_88.field_2._M_allocated_capacity;\n      local_88._M_dataplus._M_p = (pointer)__dest;\n      if (__dest != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)0x0) goto LAB_004d4147;\n    }\n    local_88._M_dataplus._M_p = (pointer)&local_88.field_2;\n    uVar1 = local_88.field_2._M_allocated_capacity;\n  }" { (if_statement "if (__dest == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(in_stack_00000018 + 2)) {\n      *in_stack_00000018 = local_88._M_dataplus._M_p;\n      in_stack_00000018[1] = local_88._M_string_length;\n      in_stack_00000018[2] = local_88.field_2._M_allocated_capacity;\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88._M_dataplus._M_p;\n      in_stack_00000018[1] = local_88._M_string_length;\n      in_stack_00000018[2] = local_88.field_2._M_allocated_capacity;\n      local_88._M_dataplus._M_p = (pointer)__dest;\n      if (__dest != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)0x0) goto LAB_004d4147;\n    }" if (parenthesized_expression "(__dest == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(in_stack_00000018 + 2))" ( (binary_expression "__dest == (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(in_stack_00000018 + 2)" identifier == (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)(in_stack_00000018 + 2)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) (argument_list "(in_stack_00000018 + 2)" ( (binary_expression "in_stack_00000018 + 2" identifier + number_literal) )))) )) (compound_statement "{\n      *in_stack_00000018 = local_88._M_dataplus._M_p;\n      in_stack_00000018[1] = local_88._M_string_length;\n      in_stack_00000018[2] = local_88.field_2._M_allocated_capacity;\n    }" { (expression_statement "*in_stack_00000018 = local_88._M_dataplus._M_p;" (assignment_expression "*in_stack_00000018 = local_88._M_dataplus._M_p" (pointer_expression "*in_stack_00000018" * identifier) = (field_expression "local_88._M_dataplus._M_p" (field_expression "local_88._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "in_stack_00000018[1] = local_88._M_string_length;" (assignment_expression "in_stack_00000018[1] = local_88._M_string_length" (subscript_expression "in_stack_00000018[1]" identifier [ number_literal ]) = (field_expression "local_88._M_string_length" identifier . field_identifier)) ;) (expression_statement "in_stack_00000018[2] = local_88.field_2._M_allocated_capacity;" (assignment_expression "in_stack_00000018[2] = local_88.field_2._M_allocated_capacity" (subscript_expression "in_stack_00000018[2]" identifier [ number_literal ]) = (field_expression "local_88.field_2._M_allocated_capacity" (field_expression "local_88.field_2" identifier . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88._M_dataplus._M_p;\n      in_stack_00000018[1] = local_88._M_string_length;\n      in_stack_00000018[2] = local_88.field_2._M_allocated_capacity;\n      local_88._M_dataplus._M_p = (pointer)__dest;\n      if (__dest != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)0x0) goto LAB_004d4147;\n    }" else (compound_statement "{\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88._M_dataplus._M_p;\n      in_stack_00000018[1] = local_88._M_string_length;\n      in_stack_00000018[2] = local_88.field_2._M_allocated_capacity;\n      local_88._M_dataplus._M_p = (pointer)__dest;\n      if (__dest != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)0x0) goto LAB_004d4147;\n    }" { (expression_statement "uVar1 = in_stack_00000018[2];" (assignment_expression "uVar1 = in_stack_00000018[2]" identifier = (subscript_expression "in_stack_00000018[2]" identifier [ number_literal ])) ;) (expression_statement "*in_stack_00000018 = local_88._M_dataplus._M_p;" (assignment_expression "*in_stack_00000018 = local_88._M_dataplus._M_p" (pointer_expression "*in_stack_00000018" * identifier) = (field_expression "local_88._M_dataplus._M_p" (field_expression "local_88._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "in_stack_00000018[1] = local_88._M_string_length;" (assignment_expression "in_stack_00000018[1] = local_88._M_string_length" (subscript_expression "in_stack_00000018[1]" identifier [ number_literal ]) = (field_expression "local_88._M_string_length" identifier . field_identifier)) ;) (expression_statement "in_stack_00000018[2] = local_88.field_2._M_allocated_capacity;" (assignment_expression "in_stack_00000018[2] = local_88.field_2._M_allocated_capacity" (subscript_expression "in_stack_00000018[2]" identifier [ number_literal ]) = (field_expression "local_88.field_2._M_allocated_capacity" (field_expression "local_88.field_2" identifier . field_identifier) . field_identifier)) ;) (expression_statement "local_88._M_dataplus._M_p = (pointer)__dest;" (assignment_expression "local_88._M_dataplus._M_p = (pointer)__dest" (field_expression "local_88._M_dataplus._M_p" (field_expression "local_88._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)__dest" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if (__dest != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)0x0) goto LAB_004d4147;" if (parenthesized_expression "(__dest != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)0x0)" ( (binary_expression "__dest != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)0x0)" identifier != (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                     *)0x0)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                     *)0x0" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                     *)0x0" identifier * (ERROR ")" )) number_literal)) ))) )) (goto_statement "goto LAB_004d4147;" goto statement_identifier ;)) }))) (expression_statement "local_88._M_dataplus._M_p = (pointer)&local_88.field_2;" (assignment_expression "local_88._M_dataplus._M_p = (pointer)&local_88.field_2" (field_expression "local_88._M_dataplus._M_p" (field_expression "local_88._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&local_88.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "local_88.field_2" identifier . field_identifier))) ;) (expression_statement "uVar1 = local_88.field_2._M_allocated_capacity;" (assignment_expression "uVar1 = local_88.field_2._M_allocated_capacity" identifier = (field_expression "local_88.field_2._M_allocated_capacity" (field_expression "local_88.field_2" identifier . field_identifier) . field_identifier)) ;) }))) (labeled_statement "LAB_004d4147:\n  local_88.field_2._M_allocated_capacity = uVar1;" statement_identifier : (expression_statement "local_88.field_2._M_allocated_capacity = uVar1;" (assignment_expression "local_88.field_2._M_allocated_capacity = uVar1" (field_expression "local_88.field_2._M_allocated_capacity" (field_expression "local_88.field_2" identifier . field_identifier) . field_identifier) = identifier) ;)) (expression_statement "local_88._M_string_length = 0;" (assignment_expression "local_88._M_string_length = 0" (field_expression "local_88._M_string_length" identifier . field_identifier) = number_literal) ;) (expression_statement "*local_88._M_dataplus._M_p = '\0';" (assignment_expression "*local_88._M_dataplus._M_p = '\0'" (pointer_expression "*local_88._M_dataplus._M_p" * (field_expression "local_88._M_dataplus._M_p" (field_expression "local_88._M_dataplus" identifier . field_identifier) . field_identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_88._M_dataplus._M_p != &local_88.field_2) {\n    operator_delete(local_88._M_dataplus._M_p);\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_88._M_dataplus._M_p != &local_88.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_88._M_dataplus._M_p != &local_88.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)local_88._M_dataplus._M_p != &local_88.field_2" (binary_expression "allocator<char>_>_9\n       *)local_88._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)local_88._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "local_88._M_dataplus._M_p" (field_expression "local_88._M_dataplus" identifier . field_identifier) . field_identifier))) != (pointer_expression "&local_88.field_2" & (field_expression "local_88.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n    operator_delete(local_88._M_dataplus._M_p);\n  }" { (expression_statement "operator_delete(local_88._M_dataplus._M_p);" (call_expression "operator_delete(local_88._M_dataplus._M_p)" identifier (argument_list "(local_88._M_dataplus._M_p)" ( (field_expression "local_88._M_dataplus._M_p" (field_expression "local_88._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) (if_statement "if (local_48 != (code *)0x0) {\n    (*local_48)(&local_68);\n  }" if (parenthesized_expression "(local_48 != (code *)0x0)" ( (binary_expression "local_48 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*local_48)(&local_68);\n  }" { (expression_statement "(*local_48)(&local_68);" (call_expression "(*local_48)(&local_68)" (parenthesized_expression "(*local_48)" ( (pointer_expression "*local_48" * identifier) )) (argument_list "(&local_68)" ( (pointer_expression "&local_68" & identifier) ))) ;) })) (expression_statement "auVar2._8_8_ = param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff;" (assignment_expression "auVar2._8_8_ = param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff" (field_expression "auVar2._8_8_" identifier . field_identifier) = (binary_expression "param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff" (binary_expression "param_3 & 0xffffffff00000000" identifier & number_literal) | (binary_expression "auVar2._8_8_ & 0xffffffff" (field_expression "auVar2._8_8_" identifier . field_identifier) & number_literal))) ;) (return_statement "return auVar2;" return identifier ;) (ERROR "}" }))
(translation_unit "undefined1  [16] FUN_004d4030(long param_1,undefined8 param_2,ulong param_3)\n\n{\n  undefined8 uVar1;\n  undefined8 *__dest;\n  undefined1 auVar2 [16];\n  undefined8 *in_stack_00000018;\n  undefined8 *local_88;\n  size_t local_80;\n  undefined8 local_78 [2];\n  long local_68;\n  long local_60;\n  code *local_48;\n  \n  local_48 = (code *)0x0;\n                    \n  auVar2 = FUN_004dad80(*(undefined8 *)(param_1 + 0x10));\n  if (local_48 == (code *)0x0) {\n                    \n    FUN_004dcba0("uninitialized __any_string");\n  }\n  local_88 = local_78;\n                    \n  FUN_001a61c0(&local_88,local_68,local_60 + local_68);\n  __dest = (undefined8 *)*in_stack_00000018;\n  if (local_88 == local_78) {\n    if (local_80 != 0) {\n      if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n    }\n    in_stack_00000018[1] = local_80;\n    *(undefined1 *)((long)__dest + local_80) = 0;\n    uVar1 = local_78[0];\n  }\n  else {\n    if (__dest == in_stack_00000018 + 2) {\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }\n    local_88 = local_78;\n    uVar1 = local_78[0];\n  }\nLAB_004d4147:\n  local_78[0] = uVar1;\n  local_80 = 0;\n  *(undefined1 *)local_88 = 0;\n  if (local_88 != local_78) {\n    FUN_0049e330();\n  }\n  if (local_48 != (code *)0x0) {\n    (*local_48)(&local_68);\n  }\n  auVar2._8_8_ = param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff;\n  return auVar2;\n}\n\n" (expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" identifier [ number_literal ]) ;) (macro_type_specifier "FUN_004d4030(long param_1,undefined8 param_2,ulong param_3)" identifier ( (type_descriptor "long param_1" (sized_type_specifier "long param_1" long type_identifier)) (ERROR ",undefined8 param_2,ulong param_3" , identifier identifier , identifier identifier) )) ; (compound_statement "{\n  undefined8 uVar1;\n  undefined8 *__dest;\n  undefined1 auVar2 [16];\n  undefined8 *in_stack_00000018;\n  undefined8 *local_88;\n  size_t local_80;\n  undefined8 local_78 [2];\n  long local_68;\n  long local_60;\n  code *local_48;\n  \n  local_48 = (code *)0x0;\n                    \n  auVar2 = FUN_004dad80(*(undefined8 *)(param_1 + 0x10));\n  if (local_48 == (code *)0x0) {\n                    \n    FUN_004dcba0("uninitialized __any_string");\n  }\n  local_88 = local_78;\n                    \n  FUN_001a61c0(&local_88,local_68,local_60 + local_68);\n  __dest = (undefined8 *)*in_stack_00000018;\n  if (local_88 == local_78) {\n    if (local_80 != 0) {\n      if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n    }\n    in_stack_00000018[1] = local_80;\n    *(undefined1 *)((long)__dest + local_80) = 0;\n    uVar1 = local_78[0];\n  }\n  else {\n    if (__dest == in_stack_00000018 + 2) {\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }\n    local_88 = local_78;\n    uVar1 = local_78[0];\n  }\nLAB_004d4147:\n  local_78[0] = uVar1;\n  local_80 = 0;\n  *(undefined1 *)local_88 = 0;\n  if (local_88 != local_78) {\n    FUN_0049e330();\n  }\n  if (local_48 != (code *)0x0) {\n    (*local_48)(&local_68);\n  }\n  auVar2._8_8_ = param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff;\n  return auVar2;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "undefined8 *__dest;" type_identifier (pointer_declarator "*__dest" * identifier) ;) (declaration "undefined1 auVar2 [16];" type_identifier (array_declarator "auVar2 [16]" identifier [ number_literal ]) ;) (declaration "undefined8 *in_stack_00000018;" type_identifier (pointer_declarator "*in_stack_00000018" * identifier) ;) (declaration "undefined8 *local_88;" type_identifier (pointer_declarator "*local_88" * identifier) ;) (declaration "size_t local_80;" primitive_type identifier ;) (declaration "undefined8 local_78 [2];" type_identifier (array_declarator "local_78 [2]" identifier [ number_literal ]) ;) (declaration "long local_68;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_60;" (sized_type_specifier "long" long) identifier ;) (declaration "code *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (expression_statement "local_48 = (code *)0x0;" (assignment_expression "local_48 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "auVar2 = FUN_004dad80(*(undefined8 *)(param_1 + 0x10));" (assignment_expression "auVar2 = FUN_004dad80(*(undefined8 *)(param_1 + 0x10))" identifier = (call_expression "FUN_004dad80(*(undefined8 *)(param_1 + 0x10))" identifier (argument_list "(*(undefined8 *)(param_1 + 0x10))" ( (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (local_48 == (code *)0x0) {\n                    \n    FUN_004dcba0("uninitialized __any_string");\n  }" if (parenthesized_expression "(local_48 == (code *)0x0)" ( (binary_expression "local_48 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    FUN_004dcba0("uninitialized __any_string");\n  }" { (expression_statement "FUN_004dcba0("uninitialized __any_string");" (call_expression "FUN_004dcba0("uninitialized __any_string")" identifier (argument_list "("uninitialized __any_string")" ( (string_literal ""uninitialized __any_string"" " string_content ") ))) ;) })) (expression_statement "local_88 = local_78;" (assignment_expression "local_88 = local_78" identifier = identifier) ;) (expression_statement "FUN_001a61c0(&local_88,local_68,local_60 + local_68);" (call_expression "FUN_001a61c0(&local_88,local_68,local_60 + local_68)" identifier (argument_list "(&local_88,local_68,local_60 + local_68)" ( (pointer_expression "&local_88" & identifier) , identifier , (binary_expression "local_60 + local_68" identifier + identifier) ))) ;) (expression_statement "__dest = (undefined8 *)*in_stack_00000018;" (assignment_expression "__dest = (undefined8 *)*in_stack_00000018" identifier = (cast_expression "(undefined8 *)*in_stack_00000018" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_stack_00000018" * identifier))) ;) (if_statement "if (local_88 == local_78) {\n    if (local_80 != 0) {\n      if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n    }\n    in_stack_00000018[1] = local_80;\n    *(undefined1 *)((long)__dest + local_80) = 0;\n    uVar1 = local_78[0];\n  }\n  else {\n    if (__dest == in_stack_00000018 + 2) {\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }\n    local_88 = local_78;\n    uVar1 = local_78[0];\n  }" if (parenthesized_expression "(local_88 == local_78)" ( (binary_expression "local_88 == local_78" identifier == identifier) )) (compound_statement "{\n    if (local_80 != 0) {\n      if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n    }\n    in_stack_00000018[1] = local_80;\n    *(undefined1 *)((long)__dest + local_80) = 0;\n    uVar1 = local_78[0];\n  }" { (if_statement "if (local_80 != 0) {\n      if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n    }" if (parenthesized_expression "(local_80 != 0)" ( (binary_expression "local_80 != 0" identifier != number_literal) )) (compound_statement "{\n      if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n    }" { (if_statement "if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }" if (parenthesized_expression "(local_80 == 1)" ( (binary_expression "local_80 == 1" identifier == number_literal) )) (compound_statement "{\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }" { (expression_statement "*(undefined1 *)__dest = (undefined1)local_78[0];" (assignment_expression "*(undefined1 *)__dest = (undefined1)local_78[0]" (pointer_expression "*(undefined1 *)__dest" * (cast_expression "(undefined1 *)__dest" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined1)local_78[0]" ( (type_descriptor "undefined1" type_identifier) ) (subscript_expression "local_78[0]" identifier [ number_literal ]))) ;) (expression_statement "__dest = (undefined8 *)*in_stack_00000018;" (assignment_expression "__dest = (undefined8 *)*in_stack_00000018" identifier = (cast_expression "(undefined8 *)*in_stack_00000018" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_stack_00000018" * identifier))) ;) }) (else_clause "else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }" else (compound_statement "{\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }" { (expression_statement "memcpy(__dest,local_88,local_80);" (call_expression "memcpy(__dest,local_88,local_80)" identifier (argument_list "(__dest,local_88,local_80)" ( identifier , identifier , identifier ))) ;) (expression_statement "__dest = (undefined8 *)*in_stack_00000018;" (assignment_expression "__dest = (undefined8 *)*in_stack_00000018" identifier = (cast_expression "(undefined8 *)*in_stack_00000018" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_stack_00000018" * identifier))) ;) }))) })) (expression_statement "in_stack_00000018[1] = local_80;" (assignment_expression "in_stack_00000018[1] = local_80" (subscript_expression "in_stack_00000018[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((long)__dest + local_80) = 0;" (assignment_expression "*(undefined1 *)((long)__dest + local_80) = 0" (pointer_expression "*(undefined1 *)((long)__dest + local_80)" * (cast_expression "(undefined1 *)((long)__dest + local_80)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__dest + local_80)" ( (binary_expression "(long)__dest + local_80" (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "uVar1 = local_78[0];" (assignment_expression "uVar1 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    if (__dest == in_stack_00000018 + 2) {\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }\n    local_88 = local_78;\n    uVar1 = local_78[0];\n  }" else (compound_statement "{\n    if (__dest == in_stack_00000018 + 2) {\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }\n    local_88 = local_78;\n    uVar1 = local_78[0];\n  }" { (if_statement "if (__dest == in_stack_00000018 + 2) {\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }" if (parenthesized_expression "(__dest == in_stack_00000018 + 2)" ( (binary_expression "__dest == in_stack_00000018 + 2" identifier == (binary_expression "in_stack_00000018 + 2" identifier + number_literal)) )) (compound_statement "{\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }" { (expression_statement "*in_stack_00000018 = local_88;" (assignment_expression "*in_stack_00000018 = local_88" (pointer_expression "*in_stack_00000018" * identifier) = identifier) ;) (expression_statement "in_stack_00000018[1] = local_80;" (assignment_expression "in_stack_00000018[1] = local_80" (subscript_expression "in_stack_00000018[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "in_stack_00000018[2] = local_78[0];" (assignment_expression "in_stack_00000018[2] = local_78[0]" (subscript_expression "in_stack_00000018[2]" identifier [ number_literal ]) = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }" else (compound_statement "{\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }" { (expression_statement "uVar1 = in_stack_00000018[2];" (assignment_expression "uVar1 = in_stack_00000018[2]" identifier = (subscript_expression "in_stack_00000018[2]" identifier [ number_literal ])) ;) (expression_statement "*in_stack_00000018 = local_88;" (assignment_expression "*in_stack_00000018 = local_88" (pointer_expression "*in_stack_00000018" * identifier) = identifier) ;) (expression_statement "in_stack_00000018[1] = local_80;" (assignment_expression "in_stack_00000018[1] = local_80" (subscript_expression "in_stack_00000018[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "in_stack_00000018[2] = local_78[0];" (assignment_expression "in_stack_00000018[2] = local_78[0]" (subscript_expression "in_stack_00000018[2]" identifier [ number_literal ]) = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) (expression_statement "local_88 = __dest;" (assignment_expression "local_88 = __dest" identifier = identifier) ;) (if_statement "if (__dest != (undefined8 *)0x0) goto LAB_004d4147;" if (parenthesized_expression "(__dest != (undefined8 *)0x0)" ( (binary_expression "__dest != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_004d4147;" goto statement_identifier ;)) }))) (expression_statement "local_88 = local_78;" (assignment_expression "local_88 = local_78" identifier = identifier) ;) (expression_statement "uVar1 = local_78[0];" (assignment_expression "uVar1 = local_78[0]" identifier = (subscript_expression "local_78[0]" identifier [ number_literal ])) ;) }))) (labeled_statement "LAB_004d4147:\n  local_78[0] = uVar1;" statement_identifier : (expression_statement "local_78[0] = uVar1;" (assignment_expression "local_78[0] = uVar1" (subscript_expression "local_78[0]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)local_88 = 0;" (assignment_expression "*(undefined1 *)local_88 = 0" (pointer_expression "*(undefined1 *)local_88" * (cast_expression "(undefined1 *)local_88" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (local_88 != local_78) {\n    FUN_0049e330();\n  }" if (parenthesized_expression "(local_88 != local_78)" ( (binary_expression "local_88 != local_78" identifier != identifier) )) (compound_statement "{\n    FUN_0049e330();\n  }" { (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (local_48 != (code *)0x0) {\n    (*local_48)(&local_68);\n  }" if (parenthesized_expression "(local_48 != (code *)0x0)" ( (binary_expression "local_48 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*local_48)(&local_68);\n  }" { (expression_statement "(*local_48)(&local_68);" (call_expression "(*local_48)(&local_68)" (parenthesized_expression "(*local_48)" ( (pointer_expression "*local_48" * identifier) )) (argument_list "(&local_68)" ( (pointer_expression "&local_68" & identifier) ))) ;) })) (expression_statement "auVar2._8_8_ = param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff;" (assignment_expression "auVar2._8_8_ = param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff" (field_expression "auVar2._8_8_" identifier . field_identifier) = (binary_expression "param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff" (binary_expression "param_3 & 0xffffffff00000000" identifier & number_literal) | (binary_expression "auVar2._8_8_ & 0xffffffff" (field_expression "auVar2._8_8_" identifier . field_identifier) & number_literal))) ;) (return_statement "return auVar2;" return identifier ;) }))
(translation_unit (expression_statement (subscript_expression IDENT [ LIT ]) ;) (macro_type_specifier IDENT ( (type_descriptor (sized_type_specifier long TYPE)) (ERROR , IDENT IDENT , IDENT IDENT) )) ; (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) ))) ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (binary_expression IDENT & LIT) | (binary_expression (field_expression IDENT . field_identifier) & LIT))) ;) (return_statement return IDENT ;) }))
(expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" (identifier "undefined1") ([ "[") (number_literal "16") (] "]")) (; "")) (macro_type_specifier "FUN_004d4030(long param_1,undefined8 param_2,ulong param_3)" (identifier "FUN_004d4030") (( "(") (type_descriptor "long param_1" (sized_type_specifier "long param_1" (long "long") (type_identifier "param_1"))) (ERROR ",undefined8 param_2,ulong param_3" (, ",") (identifier "undefined8") (identifier "param_2") (, ",") (identifier "ulong") (identifier "param_3")) () ")")) (; "") (compound_statement "{\n  undefined8 uVar1;\n  undefined8 *__dest;\n  undefined1 auVar2 [16];\n  undefined8 *in_stack_00000018;\n  undefined8 *local_88;\n  size_t local_80;\n  undefined8 local_78 [2];\n  long local_68;\n  long local_60;\n  code *local_48;\n  \n  local_48 = (code *)0x0;\n                    \n  auVar2 = FUN_004dad80(*(undefined8 *)(param_1 + 0x10));\n  if (local_48 == (code *)0x0) {\n                    \n    FUN_004dcba0("uninitialized __any_string");\n  }\n  local_88 = local_78;\n                    \n  FUN_001a61c0(&local_88,local_68,local_60 + local_68);\n  __dest = (undefined8 *)*in_stack_00000018;\n  if (local_88 == local_78) {\n    if (local_80 != 0) {\n      if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n    }\n    in_stack_00000018[1] = local_80;\n    *(undefined1 *)((long)__dest + local_80) = 0;\n    uVar1 = local_78[0];\n  }\n  else {\n    if (__dest == in_stack_00000018 + 2) {\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }\n    local_88 = local_78;\n    uVar1 = local_78[0];\n  }\nLAB_004d4147:\n  local_78[0] = uVar1;\n  local_80 = 0;\n  *(undefined1 *)local_88 = 0;\n  if (local_88 != local_78) {\n    FUN_0049e330();\n  }\n  if (local_48 != (code *)0x0) {\n    (*local_48)(&local_68);\n  }\n  auVar2._8_8_ = param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff;\n  return auVar2;\n}" ({ "{") (declaration "undefined8 uVar1;" (type_identifier "undefined8") (identifier "uVar1") (; ";")) (declaration "undefined8 *__dest;" (type_identifier "undefined8") (pointer_declarator "*__dest" (* "*") (identifier "__dest")) (; ";")) (declaration "undefined1 auVar2 [16];" (type_identifier "undefined1") (array_declarator "auVar2 [16]" (identifier "auVar2") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined8 *in_stack_00000018;" (type_identifier "undefined8") (pointer_declarator "*in_stack_00000018" (* "*") (identifier "in_stack_00000018")) (; ";")) (declaration "undefined8 *local_88;" (type_identifier "undefined8") (pointer_declarator "*local_88" (* "*") (identifier "local_88")) (; ";")) (declaration "size_t local_80;" (primitive_type "size_t") (identifier "local_80") (; ";")) (declaration "undefined8 local_78 [2];" (type_identifier "undefined8") (array_declarator "local_78 [2]" (identifier "local_78") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "long local_68;" (sized_type_specifier "long" (long "long")) (identifier "local_68") (; ";")) (declaration "long local_60;" (sized_type_specifier "long" (long "long")) (identifier "local_60") (; ";")) (declaration "code *local_48;" (type_identifier "code") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (expression_statement "local_48 = (code *)0x0;" (assignment_expression "local_48 = (code *)0x0" (identifier "local_48") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "auVar2 = FUN_004dad80(*(undefined8 *)(param_1 + 0x10));" (assignment_expression "auVar2 = FUN_004dad80(*(undefined8 *)(param_1 + 0x10))" (identifier "auVar2") (= "=") (call_expression "FUN_004dad80(*(undefined8 *)(param_1 + 0x10))" (identifier "FUN_004dad80") (argument_list "(*(undefined8 *)(param_1 + 0x10))" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) () ")")))) (; ";")) (if_statement "if (local_48 == (code *)0x0) {\n                    \n    FUN_004dcba0("uninitialized __any_string");\n  }" (if "if") (parenthesized_expression "(local_48 == (code *)0x0)" (( "(") (binary_expression "local_48 == (code *)0x0" (identifier "local_48") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    FUN_004dcba0("uninitialized __any_string");\n  }" ({ "{") (expression_statement "FUN_004dcba0("uninitialized __any_string");" (call_expression "FUN_004dcba0("uninitialized __any_string")" (identifier "FUN_004dcba0") (argument_list "("uninitialized __any_string")" (( "(") (string_literal ""uninitialized __any_string"" (" """) (string_content "uninitialized __any_string") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "local_88 = local_78;" (assignment_expression "local_88 = local_78" (identifier "local_88") (= "=") (identifier "local_78")) (; ";")) (expression_statement "FUN_001a61c0(&local_88,local_68,local_60 + local_68);" (call_expression "FUN_001a61c0(&local_88,local_68,local_60 + local_68)" (identifier "FUN_001a61c0") (argument_list "(&local_88,local_68,local_60 + local_68)" (( "(") (pointer_expression "&local_88" (& "&") (identifier "local_88")) (, ",") (identifier "local_68") (, ",") (binary_expression "local_60 + local_68" (identifier "local_60") (+ "+") (identifier "local_68")) () ")"))) (; ";")) (expression_statement "__dest = (undefined8 *)*in_stack_00000018;" (assignment_expression "__dest = (undefined8 *)*in_stack_00000018" (identifier "__dest") (= "=") (cast_expression "(undefined8 *)*in_stack_00000018" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*in_stack_00000018" (* "*") (identifier "in_stack_00000018")))) (; ";")) (if_statement "if (local_88 == local_78) {\n    if (local_80 != 0) {\n      if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n    }\n    in_stack_00000018[1] = local_80;\n    *(undefined1 *)((long)__dest + local_80) = 0;\n    uVar1 = local_78[0];\n  }\n  else {\n    if (__dest == in_stack_00000018 + 2) {\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }\n    local_88 = local_78;\n    uVar1 = local_78[0];\n  }" (if "if") (parenthesized_expression "(local_88 == local_78)" (( "(") (binary_expression "local_88 == local_78" (identifier "local_88") (== "==") (identifier "local_78")) () ")")) (compound_statement "{\n    if (local_80 != 0) {\n      if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n    }\n    in_stack_00000018[1] = local_80;\n    *(undefined1 *)((long)__dest + local_80) = 0;\n    uVar1 = local_78[0];\n  }" ({ "{") (if_statement "if (local_80 != 0) {\n      if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n    }" (if "if") (parenthesized_expression "(local_80 != 0)" (( "(") (binary_expression "local_80 != 0" (identifier "local_80") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n    }" ({ "{") (if_statement "if (local_80 == 1) {\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }\n      else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }" (if "if") (parenthesized_expression "(local_80 == 1)" (( "(") (binary_expression "local_80 == 1" (identifier "local_80") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        *(undefined1 *)__dest = (undefined1)local_78[0];\n        __dest = (undefined8 *)*in_stack_00000018;\n      }" ({ "{") (expression_statement "*(undefined1 *)__dest = (undefined1)local_78[0];" (assignment_expression "*(undefined1 *)__dest = (undefined1)local_78[0]" (pointer_expression "*(undefined1 *)__dest" (* "*") (cast_expression "(undefined1 *)__dest" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__dest"))) (= "=") (cast_expression "(undefined1)local_78[0]" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]")))) (; ";")) (expression_statement "__dest = (undefined8 *)*in_stack_00000018;" (assignment_expression "__dest = (undefined8 *)*in_stack_00000018" (identifier "__dest") (= "=") (cast_expression "(undefined8 *)*in_stack_00000018" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*in_stack_00000018" (* "*") (identifier "in_stack_00000018")))) (; ";")) (} "}")) (else_clause "else {\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }" (else "else") (compound_statement "{\n        memcpy(__dest,local_88,local_80);\n        __dest = (undefined8 *)*in_stack_00000018;\n      }" ({ "{") (expression_statement "memcpy(__dest,local_88,local_80);" (call_expression "memcpy(__dest,local_88,local_80)" (identifier "memcpy") (argument_list "(__dest,local_88,local_80)" (( "(") (identifier "__dest") (, ",") (identifier "local_88") (, ",") (identifier "local_80") () ")"))) (; ";")) (expression_statement "__dest = (undefined8 *)*in_stack_00000018;" (assignment_expression "__dest = (undefined8 *)*in_stack_00000018" (identifier "__dest") (= "=") (cast_expression "(undefined8 *)*in_stack_00000018" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*in_stack_00000018" (* "*") (identifier "in_stack_00000018")))) (; ";")) (} "}")))) (} "}"))) (expression_statement "in_stack_00000018[1] = local_80;" (assignment_expression "in_stack_00000018[1] = local_80" (subscript_expression "in_stack_00000018[1]" (identifier "in_stack_00000018") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_80")) (; ";")) (expression_statement "*(undefined1 *)((long)__dest + local_80) = 0;" (assignment_expression "*(undefined1 *)((long)__dest + local_80) = 0" (pointer_expression "*(undefined1 *)((long)__dest + local_80)" (* "*") (cast_expression "(undefined1 *)((long)__dest + local_80)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__dest + local_80)" (( "(") (binary_expression "(long)__dest + local_80" (cast_expression "(long)__dest" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__dest")) (+ "+") (identifier "local_80")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = local_78[0];" (assignment_expression "uVar1 = local_78[0]" (identifier "uVar1") (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n    if (__dest == in_stack_00000018 + 2) {\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }\n    local_88 = local_78;\n    uVar1 = local_78[0];\n  }" (else "else") (compound_statement "{\n    if (__dest == in_stack_00000018 + 2) {\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }\n    local_88 = local_78;\n    uVar1 = local_78[0];\n  }" ({ "{") (if_statement "if (__dest == in_stack_00000018 + 2) {\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }\n    else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }" (if "if") (parenthesized_expression "(__dest == in_stack_00000018 + 2)" (( "(") (binary_expression "__dest == in_stack_00000018 + 2" (identifier "__dest") (== "==") (binary_expression "in_stack_00000018 + 2" (identifier "in_stack_00000018") (+ "+") (number_literal "2"))) () ")")) (compound_statement "{\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n    }" ({ "{") (expression_statement "*in_stack_00000018 = local_88;" (assignment_expression "*in_stack_00000018 = local_88" (pointer_expression "*in_stack_00000018" (* "*") (identifier "in_stack_00000018")) (= "=") (identifier "local_88")) (; ";")) (expression_statement "in_stack_00000018[1] = local_80;" (assignment_expression "in_stack_00000018[1] = local_80" (subscript_expression "in_stack_00000018[1]" (identifier "in_stack_00000018") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_80")) (; ";")) (expression_statement "in_stack_00000018[2] = local_78[0];" (assignment_expression "in_stack_00000018[2] = local_78[0]" (subscript_expression "in_stack_00000018[2]" (identifier "in_stack_00000018") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }" (else "else") (compound_statement "{\n      uVar1 = in_stack_00000018[2];\n      *in_stack_00000018 = local_88;\n      in_stack_00000018[1] = local_80;\n      in_stack_00000018[2] = local_78[0];\n      local_88 = __dest;\n      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;\n    }" ({ "{") (expression_statement "uVar1 = in_stack_00000018[2];" (assignment_expression "uVar1 = in_stack_00000018[2]" (identifier "uVar1") (= "=") (subscript_expression "in_stack_00000018[2]" (identifier "in_stack_00000018") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*in_stack_00000018 = local_88;" (assignment_expression "*in_stack_00000018 = local_88" (pointer_expression "*in_stack_00000018" (* "*") (identifier "in_stack_00000018")) (= "=") (identifier "local_88")) (; ";")) (expression_statement "in_stack_00000018[1] = local_80;" (assignment_expression "in_stack_00000018[1] = local_80" (subscript_expression "in_stack_00000018[1]" (identifier "in_stack_00000018") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_80")) (; ";")) (expression_statement "in_stack_00000018[2] = local_78[0];" (assignment_expression "in_stack_00000018[2] = local_78[0]" (subscript_expression "in_stack_00000018[2]" (identifier "in_stack_00000018") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "local_88 = __dest;" (assignment_expression "local_88 = __dest" (identifier "local_88") (= "=") (identifier "__dest")) (; ";")) (if_statement "if (__dest != (undefined8 *)0x0) goto LAB_004d4147;" (if "if") (parenthesized_expression "(__dest != (undefined8 *)0x0)" (( "(") (binary_expression "__dest != (undefined8 *)0x0" (identifier "__dest") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_004d4147;" (goto "goto") (statement_identifier "LAB_004d4147") (; ";"))) (} "}")))) (expression_statement "local_88 = local_78;" (assignment_expression "local_88 = local_78" (identifier "local_88") (= "=") (identifier "local_78")) (; ";")) (expression_statement "uVar1 = local_78[0];" (assignment_expression "uVar1 = local_78[0]" (identifier "uVar1") (= "=") (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}")))) (labeled_statement "LAB_004d4147:\n  local_78[0] = uVar1;" (statement_identifier "LAB_004d4147") (: ":") (expression_statement "local_78[0] = uVar1;" (assignment_expression "local_78[0] = uVar1" (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "uVar1")) (; ";"))) (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" (identifier "local_80") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)local_88 = 0;" (assignment_expression "*(undefined1 *)local_88 = 0" (pointer_expression "*(undefined1 *)local_88" (* "*") (cast_expression "(undefined1 *)local_88" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_88"))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_88 != local_78) {\n    FUN_0049e330();\n  }" (if "if") (parenthesized_expression "(local_88 != local_78)" (( "(") (binary_expression "local_88 != local_78" (identifier "local_88") (!= "!=") (identifier "local_78")) () ")")) (compound_statement "{\n    FUN_0049e330();\n  }" ({ "{") (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" (identifier "FUN_0049e330") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_48 != (code *)0x0) {\n    (*local_48)(&local_68);\n  }" (if "if") (parenthesized_expression "(local_48 != (code *)0x0)" (( "(") (binary_expression "local_48 != (code *)0x0" (identifier "local_48") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (*local_48)(&local_68);\n  }" ({ "{") (expression_statement "(*local_48)(&local_68);" (call_expression "(*local_48)(&local_68)" (parenthesized_expression "(*local_48)" (( "(") (pointer_expression "*local_48" (* "*") (identifier "local_48")) () ")")) (argument_list "(&local_68)" (( "(") (pointer_expression "&local_68" (& "&") (identifier "local_68")) () ")"))) (; ";")) (} "}"))) (expression_statement "auVar2._8_8_ = param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff;" (assignment_expression "auVar2._8_8_ = param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff" (field_expression "auVar2._8_8_" (identifier "auVar2") (. ".") (field_identifier "_8_8_")) (= "=") (binary_expression "param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff" (binary_expression "param_3 & 0xffffffff00000000" (identifier "param_3") (& "&") (number_literal "0xffffffff00000000")) (| "|") (binary_expression "auVar2._8_8_ & 0xffffffff" (field_expression "auVar2._8_8_" (identifier "auVar2") (. ".") (field_identifier "_8_8_")) (& "&") (number_literal "0xffffffff")))) (; ";")) (return_statement "return auVar2;" (return "return") (identifier "auVar2") (; ";")) (} "}"))

/* WARNING: Removing unreachable block (ram,0x004d40b3) */
/* std::__facet_shims::(anonymous
   namespace)::money_get_shim<char>::do_get(std::istreambuf_iterator<char, std::char_traits<char> >,
   std::istreambuf_iterator<char, std::char_traits<char> >, bool, std::ios_base&,
   std::_Ios_Iostate&, std::string&) const */

type_1  [16]
std::type_4::(anonymous_namespace)::money_get_shim<var_2>::do_get
          (long var_8,type_2 param_2,ulong var_18)

{
  type_2 uVar1;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_5;
  type_1 auVar2 [16];
  type_2 *var_15;
  basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3> var_6;
  long var_14;
  long var_13;
  type_3 *var_9;
  
  var_9 = (type_3 *)0x0;
                    /* try { // try from 004d4075 to 004d4079 has its CatchHandler @ 004d41dc */
  auVar2 = var_7<var_2>(*(type_4 **)(var_8 + 0x10));
  if (var_9 == (type_3 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_10("uninitialized __any_string");
  }
  var_6._M_dataplus._M_p = (type_5)&var_6.field_2;
                    /* try { // try from 004d4103 to 004d41db has its CatchHandler @ 004d41dc */
  __cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
  var_11<var_12*>(&var_6,var_14,var_13 + var_14);
  var_5 = (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
            *)*var_15;
  if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
       *)var_6._M_dataplus._M_p == &var_6.field_2) {
    if (var_6._M_string_length != 0) {
      if (var_6._M_string_length == 1) {
        var_5->_M_local_buf[0] = var_6.field_2._M_local_buf[0];
        var_5 = (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                  *)*var_15;
      }
      else {
        var_16(var_5,var_6._M_dataplus._M_p,var_6._M_string_length);
        var_5 = (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                  *)*var_15;
      }
    }
    var_15[1] = var_6._M_string_length;
    var_5->_M_local_buf[var_6._M_string_length] = '\0';
    uVar1 = var_6.field_2._M_allocated_capacity;
  }
  else {
    if (var_5 == (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                   *)(var_15 + 2)) {
      *var_15 = var_6._M_dataplus._M_p;
      var_15[1] = var_6._M_string_length;
      var_15[2] = var_6.field_2._M_allocated_capacity;
    }
    else {
      uVar1 = var_15[2];
      *var_15 = var_6._M_dataplus._M_p;
      var_15[1] = var_6._M_string_length;
      var_15[2] = var_6.field_2._M_allocated_capacity;
      var_6._M_dataplus._M_p = (type_5)var_5;
      if (var_5 != (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                     *)0x0) goto LAB_004d4147;
    }
    var_6._M_dataplus._M_p = (type_5)&var_6.field_2;
    uVar1 = var_6.field_2._M_allocated_capacity;
  }
LAB_004d4147:
  var_6.field_2._M_allocated_capacity = uVar1;
  var_6._M_string_length = 0;
  *var_6._M_dataplus._M_p = '\0';
  if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
       *)var_6._M_dataplus._M_p != &var_6.field_2) {
    var_17(var_6._M_dataplus._M_p);
  }
  if (var_9 != (type_3 *)0x0) {
    (*var_9)(&var_14);
  }
  auVar2._8_8_ = var_18 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff;
  return auVar2;
}


(translation_unit (expression_statement (subscript_expression argument: (identifier) index: (number_literal)) (MISSING ";")) (macro_type_specifier name: (identifier) type: (type_descriptor type: (sized_type_specifier type: (type_identifier))) (ERROR (identifier) (identifier) (identifier) (identifier))) (MISSING ";") (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (identifier))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (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))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (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))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))))) (return_statement (identifier))))

/* WARNING: Removing unreachable block (ram,0x004d40b3) */

undefined1  [16] MASKED(long param_1,undefined8 param_2,ulong param_3)

{
  undefined8 uVar1;
  undefined8 *__dest;
  undefined1 auVar2 [16];
  undefined8 *in_stack_00000018;
  undefined8 *local_88;
  size_t local_80;
  undefined8 local_78 [2];
  long local_68;
  long local_60;
  code *local_48;
  
  local_48 = (code *)0x0;
                    /* try { // try from 004d4075 to 004d4079 has its CatchHandler @ 004d41dc */
  auVar2 = FUN_004dad80(*(undefined8 *)(param_1 + 0x10));
  if (local_48 == (code *)0x0) {
                    /* WARNING: Subroutine does not return */
    FUN_004dcba0("uninitialized __any_string");
  }
  local_88 = local_78;
                    /* try { // try from 004d4103 to 004d41db has its CatchHandler @ 004d41dc */
  FUN_001a61c0(&local_88,local_68,local_60 + local_68);
  __dest = (undefined8 *)*in_stack_00000018;
  if (local_88 == local_78) {
    if (local_80 != 0) {
      if (local_80 == 1) {
        *(undefined1 *)__dest = (undefined1)local_78[0];
        __dest = (undefined8 *)*in_stack_00000018;
      }
      else {
        memcpy(__dest,local_88,local_80);
        __dest = (undefined8 *)*in_stack_00000018;
      }
    }
    in_stack_00000018[1] = local_80;
    *(undefined1 *)((long)__dest + local_80) = 0;
    uVar1 = local_78[0];
  }
  else {
    if (__dest == in_stack_00000018 + 2) {
      *in_stack_00000018 = local_88;
      in_stack_00000018[1] = local_80;
      in_stack_00000018[2] = local_78[0];
    }
    else {
      uVar1 = in_stack_00000018[2];
      *in_stack_00000018 = local_88;
      in_stack_00000018[1] = local_80;
      in_stack_00000018[2] = local_78[0];
      local_88 = __dest;
      if (__dest != (undefined8 *)0x0) goto LAB_004d4147;
    }
    local_88 = local_78;
    uVar1 = local_78[0];
  }
LAB_004d4147:
  local_78[0] = uVar1;
  local_80 = 0;
  *(undefined1 *)local_88 = 0;
  if (local_88 != local_78) {
    FUN_0049e330();
  }
  if (local_48 != (code *)0x0) {
    (*local_48)(&local_68);
  }
  auVar2._8_8_ = param_3 & 0xffffffff00000000 | auVar2._8_8_ & 0xffffffff;
  return auVar2;
}

