
/* std::ios_base::failure[abi:cxx11]::failure(std::string const&) */

void __thiscall std::ios_base::failure[abi:cxx11]::failure(failure_abi_cxx11_ *this,string *param_1)

{
  undefined *puVar1;
  int *piVar2;
  uint uVar3;
  int *piVar4;
  uint uVar5;
  int *piVar6;
  int *local_68;
  int local_64;
  int local_60;
  int local_5c;
  int local_58;
  int local_54;
  uint *local_50;
  int local_4c;
  uint local_48 [4];
  uint *local_38;
  int local_34;
  uint local_30 [5];
  
  piVar2 = (int *)iostream_category();
  local_50 = local_48;
  (*(code *)PTR__M_construct<char*>_004c2098)
            (&local_50,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0);
  if (0x7fffffffU - local_4c < 2) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 003811d4 to 003811db has its CatchHandler @ 00381208 */
    __throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);
  }
                    /* try { // try from 00380fb8 to 00380fbf has its CatchHandler @ 00381208 */
  (*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2);
  if (*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)) {
    local_38 = local_30;
    local_34 = 0;
    local_30[0] = local_30[0] & 0xffffff;
                    /* try { // try from 00381008 to 0038100f has its CatchHandler @ 0038122c */
    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);
    uVar3 = local_4c + local_34;
  }
  else {
                    /* try { // try from 003811a0 to 003811a7 has its CatchHandler @ 003811dc */
    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);
    uVar3 = local_4c + local_34;
  }
  if (local_50 == local_48) {
    local_48[0] = 0xf;
  }
  if (local_48[0] < uVar3) {
    uVar5 = 0xf;
    if (local_38 != local_30) {
      uVar5 = local_30[0];
    }
    if (uVar5 < uVar3) goto LAB_00381050;
                    /* try { // try from 0038113c to 00381143 has its CatchHandler @ 00381250 */
    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);
    piVar6 = piVar4 + 2;
    local_68 = (int *)*piVar4;
    if (local_68 == piVar6) goto LAB_00381160;
  }
  else {
LAB_00381050:
                    /* try { // try from 00381054 to 0038105b has its CatchHandler @ 00381250 */
    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);
    piVar6 = piVar4 + 2;
    local_68 = (int *)*piVar4;
    if (local_68 == piVar6) {
LAB_00381160:
      local_68 = &local_60;
      local_60 = piVar4[2];
      local_5c = piVar4[3];
      local_58 = piVar4[4];
      local_54 = piVar4[5];
      goto LAB_00381084;
    }
  }
  local_60 = piVar4[2];
LAB_00381084:
  puVar1 = PTR_runtime_error_004c2e5c;
  local_64 = piVar4[1];
  *(undefined1 *)(piVar4 + 2) = 0;
  *piVar4 = (int)piVar6;
                    /* try { // try from 003810a0 to 003810a7 has its CatchHandler @ 00381274 */
  piVar4[1] = 0;
  (*(code *)puVar1)(this,&local_68);
  if (local_68 != &local_60) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  if (local_38 != local_30) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  if (local_50 != local_48) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  *(int **)(this + 0xc) = piVar2;
  *(undefined4 *)(this + 8) = 1;
  *(undefined **)this = PTR_vtable_004c5604 + 8;
  return;
}



void FUN_00380f14(undefined4 *param_1,int *param_2)

{
  undefined *puVar1;
  int *piVar2;
  uint uVar3;
  int *piVar4;
  uint uVar5;
  int *piVar6;
  int *local_68;
  int local_64;
  int local_60;
  int local_5c;
  int local_58;
  int local_54;
  uint *local_50;
  int local_4c;
  uint local_48 [4];
  uint *local_38;
  int local_34;
  uint local_30 [5];
  
  piVar2 = (int *)std::iostream_category();
  local_50 = local_48;
  (*(code *)PTR__M_construct<char*>_004c2098)(&local_50,*param_2,*param_2 + param_2[1],0);
  if (0x7fffffffU - local_4c < 2) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 003811d4 to 003811db has its CatchHandler @ 00381208 */
    std::__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);
  }
                    /* try { // try from 00380fb8 to 00380fbf has its CatchHandler @ 00381208 */
  (*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2);
  if (*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)) {
    local_38 = local_30;
    local_34 = 0;
    local_30[0] = local_30[0] & 0xffffff;
                    /* try { // try from 00381008 to 0038100f has its CatchHandler @ 0038122c */
    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);
    uVar3 = local_4c + local_34;
  }
  else {
                    /* try { // try from 003811a0 to 003811a7 has its CatchHandler @ 003811dc */
    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);
    uVar3 = local_4c + local_34;
  }
  if (local_50 == local_48) {
    local_48[0] = 0xf;
  }
  if (local_48[0] < uVar3) {
    uVar5 = 0xf;
    if (local_38 != local_30) {
      uVar5 = local_30[0];
    }
    if (uVar5 < uVar3) goto LAB_00381050;
                    /* try { // try from 0038113c to 00381143 has its CatchHandler @ 00381250 */
    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);
    piVar6 = piVar4 + 2;
    local_68 = (int *)*piVar4;
    if (local_68 == piVar6) goto LAB_00381160;
  }
  else {
LAB_00381050:
                    /* try { // try from 00381054 to 0038105b has its CatchHandler @ 00381250 */
    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);
    piVar6 = piVar4 + 2;
    local_68 = (int *)*piVar4;
    if (local_68 == piVar6) {
LAB_00381160:
      local_68 = &local_60;
      local_60 = piVar4[2];
      local_5c = piVar4[3];
      local_58 = piVar4[4];
      local_54 = piVar4[5];
      goto LAB_00381084;
    }
  }
  local_60 = piVar4[2];
LAB_00381084:
  puVar1 = PTR_runtime_error_004c2e5c;
  local_64 = piVar4[1];
  *(undefined1 *)(piVar4 + 2) = 0;
  *piVar4 = (int)piVar6;
                    /* try { // try from 003810a0 to 003810a7 has its CatchHandler @ 00381274 */
  piVar4[1] = 0;
  (*(code *)puVar1)(param_1,&local_68);
  if (local_68 != &local_60) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  if (local_38 != local_30) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  if (local_50 != local_48) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  param_1[3] = piVar2;
  param_1[2] = 1;
  *param_1 = PTR_vtable_004c5604 + 8;
  return;
}


lui gp,0x15
addiu gp,gp,-0x7cd4
addu gp,gp,t9
addiu sp,sp,-0x88
lw t9,-0x3c18(gp)
sw gp,0x18(sp)
sw ra,0x84(sp)
sw s3,0x78(sp)
addiu s3,sp,0x38
sw s2,0x74(sp)
or s2,a1,zero
sw s1,0x70(sp)
addiu s1,sp,0x40
sw s0,0x6c(sp)
or s0,a0,zero
sw s5,0x80(sp)
bal 0x00380e74
_sw s4,0x7c(sp)
or a3,zero,zero
lw gp,0x18(sp)
or a0,s3,zero
lw v1,0x0(s2)
sll a3,a3,0x18
lw a2,0x4(s2)
or s2,v0,zero
sw s1,0x38(sp)
lw t9,-0x71a8(gp)
or a1,v1,zero
jalr t9
_addu a2,v1,a2
lui v0,0x7fff
lw v1,0x3c(sp)
ori v0,v0,0xffff
subu v0,v0,v1
sltiu v0,v0,0x2
bne v0,zero,0x003811cc
_lw gp,0x18(sp)
lw a1,-0x7924(gp)
li a2,0x2
lw t9,-0x73d8(gp)
or a0,s3,zero
jalr t9
_addiu a1,a1,-0x88
lw v0,0x0(s2)
lw gp,0x18(sp)
lw t9,0x10(v0)
lw v0,-0x7f7c(gp)
addiu v0,v0,0xda0
bne t9,v0,0x00381194
_lw a3,-0x7f64(gp)
addiu s5,sp,0x50
addiu s4,sp,0x58
lw t9,-0x71a0(gp)
li v0,0xe
sw zero,0x54(sp)
addiu a3,a3,-0x2a74
sw s4,0x50(sp)
or a2,zero,zero
sb zero,0x58(sp)
or a1,zero,zero
sw v0,0x10(sp)
jalr t9
_or a0,s5,zero
lw a0,0x3c(sp)
lw a2,0x54(sp)
lw a3,0x38(sp)
lw gp,0x18(sp)
beq a3,s1,0x003811c4
_addu v0,a0,a2
lw v1,0x40(sp)
sltu v1,v1,v0
beq v1,zero,0x00381050
_lw a1,0x50(sp)
beq a1,s4,0x00381044
_li v1,0xf
lw v1,0x58(sp)
sltu v0,v1,v0
beq v0,zero,0x00381130
_lw t9,-0x71a0(gp)
lw t9,-0x73d8(gp)
jalr t9
_or a0,s3,zero
addiu s3,sp,0x28
lw gp,0x18(sp)
addiu v1,v0,0x8
sw s3,0x20(sp)
lw a0,0x0(v0)
beq a0,v1,0x00381160
_nop
lw a1,0x8(v0)
sw a0,0x20(sp)
sw a1,0x28(sp)
lw a2,0x4(v0)
addiu a1,sp,0x20
lw t9,-0x63e4(gp)
or a0,s0,zero
sb zero,0x8(v0)
sw a2,0x24(sp)
sw v1,0x0(v0)
jalr t9
_sw zero,0x4(v0)
lw a0,0x20(sp)
beq a0,s3,0x003810c4
_lw gp,0x18(sp)
lw t9,-0x7f44(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw a0,0x50(sp)
beq a0,s4,0x003810dc
_lw t9,-0x7f44(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw a0,0x38(sp)
beq a0,s1,0x003810f4
_lw t9,-0x7f44(gp)
jalr t9
_nop
lw gp,0x18(sp)
li v0,0x1
sw s2,0xc(s0)
sw v0,0x8(s0)
lw v0,-0x3c3c(gp)
addiu v0,v0,0x8
sw v0,0x0(s0)
lw ra,0x84(sp)
lw s5,0x80(sp)
lw s4,0x7c(sp)
lw s3,0x78(sp)
lw s2,0x74(sp)
lw s1,0x70(sp)
lw s0,0x6c(sp)
jr ra
_addiu sp,sp,0x88
or a2,zero,zero
or a1,zero,zero
sw a0,0x10(sp)
jalr t9
_or a0,s5,zero
addiu s3,sp,0x28
lw gp,0x18(sp)
addiu v1,v0,0x8
sw s3,0x20(sp)
lw a0,0x0(v0)
bne a0,v1,0x00381078
_nop
lwl a3,0x8(v0)
lwl a2,0xc(v0)
lwl a1,0x10(v0)
lwl a0,0x14(v0)
lwr a3,0xb(v0)
lwr a2,0xf(v0)
lwr a1,0x13(v0)
lwr a0,0x17(v0)
sw a3,0x28(sp)
sw a2,0x2c(sp)
sw a1,0x30(sp)
b 0x00381084
_sw a0,0x34(sp)
addiu s5,sp,0x50
li a2,0x1
or a1,s2,zero
jalr t9
_or a0,s5,zero
lw a0,0x3c(sp)
addiu s4,sp,0x58
lw a2,0x54(sp)
lw a3,0x38(sp)
lw gp,0x18(sp)
bne a3,s1,0x00381028
_addu v0,a0,a2
b 0x0038102c
_li v1,0xf
lw a0,-0x7fc4(gp)
lw t9,-0x73cc(gp)
bal 0x0038977c
_addiu a0,a0,0x446c
(translation_unit "void FUN_00380f14(undefined4 *param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  uint uVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  int *local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  uint *local_50;\n  int local_4c;\n  uint local_48 [4];\n  uint *local_38;\n  int local_34;\n  uint local_30 [5];\n  \n  piVar2 = (int *)std::iostream_category();\n  local_50 = local_48;\n  (*(code *)PTR__M_construct<char*>_004c2098)(&local_50,*param_2,*param_2 + param_2[1],0);\n  if (0x7fffffffU - local_4c < 2) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 003811d4 to 003811db has its CatchHandler @ 00381208 */\n    std::__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);\n  }\n                    /* try { // try from 00380fb8 to 00380fbf has its CatchHandler @ 00381208 */\n  (*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2);\n  if (*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)) {\n    local_38 = local_30;\n    local_34 = 0;\n    local_30[0] = local_30[0] & 0xffffff;\n                    /* try { // try from 00381008 to 0038100f has its CatchHandler @ 0038122c */\n    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);\n    uVar3 = local_4c + local_34;\n  }\n  else {\n                    /* try { // try from 003811a0 to 003811a7 has its CatchHandler @ 003811dc */\n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }\n  if (local_50 == local_48) {\n    local_48[0] = 0xf;\n  }\n  if (local_48[0] < uVar3) {\n    uVar5 = 0xf;\n    if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }\n    if (uVar5 < uVar3) goto LAB_00381050;\n                    /* try { // try from 0038113c to 00381143 has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) goto LAB_00381160;\n  }\n  else {\nLAB_00381050:\n                    /* try { // try from 00381054 to 0038105b has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }\n  local_60 = piVar4[2];\nLAB_00381084:\n  puVar1 = PTR_runtime_error_004c2e5c;\n  local_64 = piVar4[1];\n  *(undefined1 *)(piVar4 + 2) = 0;\n  *piVar4 = (int)piVar6;\n                    /* try { // try from 003810a0 to 003810a7 has its CatchHandler @ 00381274 */\n  piVar4[1] = 0;\n  (*(code *)puVar1)(param_1,&local_68);\n  if (local_68 != &local_60) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_38 != local_30) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_50 != local_48) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  param_1[3] = piVar2;\n  param_1[2] = 1;\n  *param_1 = PTR_vtable_004c5604 + 8;\n  return;\n}\n\n" (function_definition "void FUN_00380f14(undefined4 *param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  uint uVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  int *local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  uint *local_50;\n  int local_4c;\n  uint local_48 [4];\n  uint *local_38;\n  int local_34;\n  uint local_30 [5];\n  \n  piVar2 = (int *)std::iostream_category();\n  local_50 = local_48;\n  (*(code *)PTR__M_construct<char*>_004c2098)(&local_50,*param_2,*param_2 + param_2[1],0);\n  if (0x7fffffffU - local_4c < 2) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 003811d4 to 003811db has its CatchHandler @ 00381208 */\n    std::__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);\n  }\n                    /* try { // try from 00380fb8 to 00380fbf has its CatchHandler @ 00381208 */\n  (*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2);\n  if (*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)) {\n    local_38 = local_30;\n    local_34 = 0;\n    local_30[0] = local_30[0] & 0xffffff;\n                    /* try { // try from 00381008 to 0038100f has its CatchHandler @ 0038122c */\n    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);\n    uVar3 = local_4c + local_34;\n  }\n  else {\n                    /* try { // try from 003811a0 to 003811a7 has its CatchHandler @ 003811dc */\n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }\n  if (local_50 == local_48) {\n    local_48[0] = 0xf;\n  }\n  if (local_48[0] < uVar3) {\n    uVar5 = 0xf;\n    if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }\n    if (uVar5 < uVar3) goto LAB_00381050;\n                    /* try { // try from 0038113c to 00381143 has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) goto LAB_00381160;\n  }\n  else {\nLAB_00381050:\n                    /* try { // try from 00381054 to 0038105b has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }\n  local_60 = piVar4[2];\nLAB_00381084:\n  puVar1 = PTR_runtime_error_004c2e5c;\n  local_64 = piVar4[1];\n  *(undefined1 *)(piVar4 + 2) = 0;\n  *piVar4 = (int)piVar6;\n                    /* try { // try from 003810a0 to 003810a7 has its CatchHandler @ 00381274 */\n  piVar4[1] = 0;\n  (*(code *)puVar1)(param_1,&local_68);\n  if (local_68 != &local_60) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_38 != local_30) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_50 != local_48) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  param_1[3] = piVar2;\n  param_1[2] = 1;\n  *param_1 = PTR_vtable_004c5604 + 8;\n  return;\n}" primitive_type (function_declarator "FUN_00380f14(undefined4 *param_1,int *param_2)" identifier (parameter_list "(undefined4 *param_1,int *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int *piVar2;\n  uint uVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  int *local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  uint *local_50;\n  int local_4c;\n  uint local_48 [4];\n  uint *local_38;\n  int local_34;\n  uint local_30 [5];\n  \n  piVar2 = (int *)std::iostream_category();\n  local_50 = local_48;\n  (*(code *)PTR__M_construct<char*>_004c2098)(&local_50,*param_2,*param_2 + param_2[1],0);\n  if (0x7fffffffU - local_4c < 2) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 003811d4 to 003811db has its CatchHandler @ 00381208 */\n    std::__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);\n  }\n                    /* try { // try from 00380fb8 to 00380fbf has its CatchHandler @ 00381208 */\n  (*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2);\n  if (*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)) {\n    local_38 = local_30;\n    local_34 = 0;\n    local_30[0] = local_30[0] & 0xffffff;\n                    /* try { // try from 00381008 to 0038100f has its CatchHandler @ 0038122c */\n    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);\n    uVar3 = local_4c + local_34;\n  }\n  else {\n                    /* try { // try from 003811a0 to 003811a7 has its CatchHandler @ 003811dc */\n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }\n  if (local_50 == local_48) {\n    local_48[0] = 0xf;\n  }\n  if (local_48[0] < uVar3) {\n    uVar5 = 0xf;\n    if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }\n    if (uVar5 < uVar3) goto LAB_00381050;\n                    /* try { // try from 0038113c to 00381143 has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) goto LAB_00381160;\n  }\n  else {\nLAB_00381050:\n                    /* try { // try from 00381054 to 0038105b has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }\n  local_60 = piVar4[2];\nLAB_00381084:\n  puVar1 = PTR_runtime_error_004c2e5c;\n  local_64 = piVar4[1];\n  *(undefined1 *)(piVar4 + 2) = 0;\n  *piVar4 = (int)piVar6;\n                    /* try { // try from 003810a0 to 003810a7 has its CatchHandler @ 00381274 */\n  piVar4[1] = 0;\n  (*(code *)puVar1)(param_1,&local_68);\n  if (local_68 != &local_60) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_38 != local_30) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_50 != local_48) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  param_1[3] = piVar2;\n  param_1[2] = 1;\n  *param_1 = PTR_vtable_004c5604 + 8;\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "uint *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "uint local_48 [4];" type_identifier (array_declarator "local_48 [4]" identifier [ number_literal ]) ;) (declaration "uint *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "uint local_30 [5];" type_identifier (array_declarator "local_30 [5]" identifier [ number_literal ]) ;) (ERROR "piVar2 = (int *)std::" (assignment_expression "piVar2 = (int *)std" identifier = (cast_expression "(int *)std" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) : :) (expression_statement "iostream_category();" (call_expression "iostream_category()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_50 = local_48;" (assignment_expression "local_50 = local_48" identifier = identifier) ;) (expression_statement "(*(code *)PTR__M_construct<char*>_004c2098)(&local_50,*param_2,*param_2 + param_2[1],0);" (call_expression "(*(code *)PTR__M_construct<char*>_004c2098)(&local_50,*param_2,*param_2 + param_2[1],0)" (parenthesized_expression "(*(code *)PTR__M_construct<char*>_004c2098)" ( (binary_expression "*(code *)PTR__M_construct<char*>_004c2098" (binary_expression "*(code *)PTR__M_construct<char" (pointer_expression "*(code *)PTR__M_construct" * (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) (ERROR "*" *) > identifier) )) (argument_list "(&local_50,*param_2,*param_2 + param_2[1],0)" ( (pointer_expression "&local_50" & identifier) , (pointer_expression "*param_2" * identifier) , (binary_expression "*param_2 + param_2[1]" (pointer_expression "*param_2" * identifier) + (subscript_expression "param_2[1]" identifier [ number_literal ])) , number_literal ))) ;) (if_statement "if (0x7fffffffU - local_4c < 2) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 003811d4 to 003811db has its CatchHandler @ 00381208 */\n    std::__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);\n  }" if (parenthesized_expression "(0x7fffffffU - local_4c < 2)" ( (binary_expression "0x7fffffffU - local_4c < 2" (binary_expression "0x7fffffffU - local_4c" number_literal - identifier) < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 003811d4 to 003811db has its CatchHandler @ 00381208 */\n    std::__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);\n  }" { comment comment (labeled_statement "std::__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);" statement_identifier : (ERROR ":" :) (expression_statement "__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);" (call_expression "__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c)" identifier (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c" identifier + number_literal) ))) ;)) })) comment (expression_statement "(*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2);" (call_expression "(*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2)" (parenthesized_expression "(*(code *)PTR__M_append_004c1e68)" ( (pointer_expression "*(code *)PTR__M_append_004c1e68" * (cast_expression "(code *)PTR__M_append_004c1e68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2)" ( (pointer_expression "&local_50" & identifier) , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x88" identifier + number_literal) , number_literal ))) ;) (if_statement "if (*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)) {\n    local_38 = local_30;\n    local_34 = 0;\n    local_30[0] = local_30[0] & 0xffffff;\n                    /* try { // try from 00381008 to 0038100f has its CatchHandler @ 0038122c */\n    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);\n    uVar3 = local_4c + local_34;\n  }\n  else {\n                    /* try { // try from 003811a0 to 003811a7 has its CatchHandler @ 003811dc */\n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }" if (parenthesized_expression "(*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0))" ( (binary_expression "*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)" (pointer_expression "*(code **)(*piVar2 + 0x10)" * (cast_expression "(code **)(*piVar2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar2 + 0x10)" ( (binary_expression "*piVar2 + 0x10" (pointer_expression "*piVar2" * identifier) + number_literal) )))) == (cast_expression "(code *)(PTR_LAB_004c12c4 + 0xda0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_004c12c4 + 0xda0)" ( (binary_expression "PTR_LAB_004c12c4 + 0xda0" identifier + number_literal) )))) )) (compound_statement "{\n    local_38 = local_30;\n    local_34 = 0;\n    local_30[0] = local_30[0] & 0xffffff;\n                    /* try { // try from 00381008 to 0038100f has its CatchHandler @ 0038122c */\n    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);\n    uVar3 = local_4c + local_34;\n  }" { (expression_statement "local_38 = local_30;" (assignment_expression "local_38 = local_30" identifier = identifier) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30[0] = local_30[0] & 0xffffff;" (assignment_expression "local_30[0] = local_30[0] & 0xffffff" (subscript_expression "local_30[0]" identifier [ number_literal ]) = (binary_expression "local_30[0] & 0xffffff" (subscript_expression "local_30[0]" identifier [ number_literal ]) & number_literal)) ;) comment (expression_statement "(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);" (call_expression "(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe)" (parenthesized_expression "(*(code *)PTR__M_replace_004c20a0)" ( (pointer_expression "*(code *)PTR__M_replace_004c20a0" * (cast_expression "(code *)PTR__M_replace_004c20a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe)" ( (pointer_expression "&local_38" & identifier) , number_literal , number_literal , (binary_expression "PTR_UINT_004c12dc + -0x2a74" identifier + number_literal) , number_literal ))) ;) (expression_statement "uVar3 = local_4c + local_34;" (assignment_expression "uVar3 = local_4c + local_34" identifier = (binary_expression "local_4c + local_34" identifier + identifier)) ;) }) (else_clause "else {\n                    /* try { // try from 003811a0 to 003811a7 has its CatchHandler @ 003811dc */\n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }" else (compound_statement "{\n                    /* try { // try from 003811a0 to 003811a7 has its CatchHandler @ 003811dc */\n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }" { comment (expression_statement "(**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);" (call_expression "(**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1)" (parenthesized_expression "(**(code **)(*piVar2 + 0x10))" ( (pointer_expression "**(code **)(*piVar2 + 0x10)" * (pointer_expression "*(code **)(*piVar2 + 0x10)" * (cast_expression "(code **)(*piVar2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar2 + 0x10)" ( (binary_expression "*piVar2 + 0x10" (pointer_expression "*piVar2" * identifier) + number_literal) ))))) )) (argument_list "(&local_38,piVar2,1)" ( (pointer_expression "&local_38" & identifier) , identifier , number_literal ))) ;) (expression_statement "uVar3 = local_4c + local_34;" (assignment_expression "uVar3 = local_4c + local_34" identifier = (binary_expression "local_4c + local_34" identifier + identifier)) ;) }))) (if_statement "if (local_50 == local_48) {\n    local_48[0] = 0xf;\n  }" if (parenthesized_expression "(local_50 == local_48)" ( (binary_expression "local_50 == local_48" identifier == identifier) )) (compound_statement "{\n    local_48[0] = 0xf;\n  }" { (expression_statement "local_48[0] = 0xf;" (assignment_expression "local_48[0] = 0xf" (subscript_expression "local_48[0]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (local_48[0] < uVar3) {\n    uVar5 = 0xf;\n    if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }\n    if (uVar5 < uVar3) goto LAB_00381050;\n                    /* try { // try from 0038113c to 00381143 has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) goto LAB_00381160;\n  }\n  else {\nLAB_00381050:\n                    /* try { // try from 00381054 to 0038105b has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }" if (parenthesized_expression "(local_48[0] < uVar3)" ( (binary_expression "local_48[0] < uVar3" (subscript_expression "local_48[0]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n    uVar5 = 0xf;\n    if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }\n    if (uVar5 < uVar3) goto LAB_00381050;\n                    /* try { // try from 0038113c to 00381143 has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) goto LAB_00381160;\n  }" { (expression_statement "uVar5 = 0xf;" (assignment_expression "uVar5 = 0xf" identifier = number_literal) ;) (if_statement "if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }" if (parenthesized_expression "(local_38 != local_30)" ( (binary_expression "local_38 != local_30" identifier != identifier) )) (compound_statement "{\n      uVar5 = local_30[0];\n    }" { (expression_statement "uVar5 = local_30[0];" (assignment_expression "uVar5 = local_30[0]" identifier = (subscript_expression "local_30[0]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar5 < uVar3) goto LAB_00381050;" if (parenthesized_expression "(uVar5 < uVar3)" ( (binary_expression "uVar5 < uVar3" identifier < identifier) )) (goto_statement "goto LAB_00381050;" goto statement_identifier ;)) comment (expression_statement "piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);" (assignment_expression "piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c)" identifier = (cast_expression "(int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c)" (parenthesized_expression "(*(code *)PTR__M_replace_004c20a0)" ( (pointer_expression "*(code *)PTR__M_replace_004c20a0" * (cast_expression "(code *)PTR__M_replace_004c20a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_38,0,0,local_50,local_4c)" ( (pointer_expression "&local_38" & identifier) , number_literal , number_literal , identifier , identifier ))))) ;) (expression_statement "piVar6 = piVar4 + 2;" (assignment_expression "piVar6 = piVar4 + 2" identifier = (binary_expression "piVar4 + 2" identifier + number_literal)) ;) (expression_statement "local_68 = (int *)*piVar4;" (assignment_expression "local_68 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (local_68 == piVar6) goto LAB_00381160;" if (parenthesized_expression "(local_68 == piVar6)" ( (binary_expression "local_68 == piVar6" identifier == identifier) )) (goto_statement "goto LAB_00381160;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00381050:\n                    /* try { // try from 00381054 to 0038105b has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }" else (compound_statement "{\nLAB_00381050:\n                    /* try { // try from 00381054 to 0038105b has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }" { (labeled_statement "LAB_00381050:\n                    /* try { // try from 00381054 to 0038105b has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);" statement_identifier : comment (expression_statement "piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);" (assignment_expression "piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50)" identifier = (cast_expression "(int *)(*(code *)PTR__M_append_004c1e68)(&local_50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR__M_append_004c1e68)(&local_50)" (parenthesized_expression "(*(code *)PTR__M_append_004c1e68)" ( (pointer_expression "*(code *)PTR__M_append_004c1e68" * (cast_expression "(code *)PTR__M_append_004c1e68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_50)" ( (pointer_expression "&local_50" & identifier) ))))) ;)) (expression_statement "piVar6 = piVar4 + 2;" (assignment_expression "piVar6 = piVar4 + 2" identifier = (binary_expression "piVar4 + 2" identifier + number_literal)) ;) (expression_statement "local_68 = (int *)*piVar4;" (assignment_expression "local_68 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }" if (parenthesized_expression "(local_68 == piVar6)" ( (binary_expression "local_68 == piVar6" identifier == identifier) )) (compound_statement "{\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }" { (labeled_statement "LAB_00381160:\n      local_68 = &local_60;" statement_identifier : (expression_statement "local_68 = &local_60;" (assignment_expression "local_68 = &local_60" identifier = (pointer_expression "&local_60" & identifier)) ;)) (expression_statement "local_60 = piVar4[2];" (assignment_expression "local_60 = piVar4[2]" identifier = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (expression_statement "local_5c = piVar4[3];" (assignment_expression "local_5c = piVar4[3]" identifier = (subscript_expression "piVar4[3]" identifier [ number_literal ])) ;) (expression_statement "local_58 = piVar4[4];" (assignment_expression "local_58 = piVar4[4]" identifier = (subscript_expression "piVar4[4]" identifier [ number_literal ])) ;) (expression_statement "local_54 = piVar4[5];" (assignment_expression "local_54 = piVar4[5]" identifier = (subscript_expression "piVar4[5]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00381084;" goto statement_identifier ;) })) }))) (expression_statement "local_60 = piVar4[2];" (assignment_expression "local_60 = piVar4[2]" identifier = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00381084:\n  puVar1 = PTR_runtime_error_004c2e5c;" statement_identifier : (expression_statement "puVar1 = PTR_runtime_error_004c2e5c;" (assignment_expression "puVar1 = PTR_runtime_error_004c2e5c" identifier = identifier) ;)) (expression_statement "local_64 = piVar4[1];" (assignment_expression "local_64 = piVar4[1]" identifier = (subscript_expression "piVar4[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(piVar4 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar4 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar4 + 2)" * (cast_expression "(undefined1 *)(piVar4 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 2)" ( (binary_expression "piVar4 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar4 = (int)piVar6;" (assignment_expression "*piVar4 = (int)piVar6" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) comment (expression_statement "piVar4[1] = 0;" (assignment_expression "piVar4[1] = 0" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)puVar1)(param_1,&local_68);" (call_expression "(*(code *)puVar1)(param_1,&local_68)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,&local_68)" ( identifier , (pointer_expression "&local_68" & identifier) ))) ;) (if_statement "if (local_68 != &local_60) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_68 != &local_60)" ( (binary_expression "local_68 != &local_60" identifier != (pointer_expression "&local_60" & identifier)) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_38 != local_30) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_38 != local_30)" ( (binary_expression "local_38 != local_30" identifier != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_50 != local_48) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_50 != local_48)" ( (binary_expression "local_50 != local_48" identifier != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "param_1[3] = piVar2;" (assignment_expression "param_1[3] = piVar2" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = 1;" (assignment_expression "param_1[2] = 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = PTR_vtable_004c5604 + 8;" (assignment_expression "*param_1 = PTR_vtable_004c5604 + 8" (pointer_expression "*param_1" * identifier) = (binary_expression "PTR_vtable_004c5604 + 8" identifier + number_literal)) ;) (return_statement "return;" return ;) })))
(translation_unit "/* std::ios_base::failure[abi:cxx11]::failure(std::string const&) */\n\nvoid __thiscall std::ios_base::failure[abi:cxx11]::failure(failure_abi_cxx11_ *this,string *param_1)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  uint uVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  int *local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  uint *local_50;\n  int local_4c;\n  uint local_48 [4];\n  uint *local_38;\n  int local_34;\n  uint local_30 [5];\n  \n  piVar2 = (int *)iostream_category();\n  local_50 = local_48;\n  (*(code *)PTR__M_construct<char*>_004c2098)\n            (&local_50,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0);\n  if (0x7fffffffU - local_4c < 2) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 003811d4 to 003811db has its CatchHandler @ 00381208 */\n    __throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);\n  }\n                    /* try { // try from 00380fb8 to 00380fbf has its CatchHandler @ 00381208 */\n  (*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2);\n  if (*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)) {\n    local_38 = local_30;\n    local_34 = 0;\n    local_30[0] = local_30[0] & 0xffffff;\n                    /* try { // try from 00381008 to 0038100f has its CatchHandler @ 0038122c */\n    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);\n    uVar3 = local_4c + local_34;\n  }\n  else {\n                    /* try { // try from 003811a0 to 003811a7 has its CatchHandler @ 003811dc */\n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }\n  if (local_50 == local_48) {\n    local_48[0] = 0xf;\n  }\n  if (local_48[0] < uVar3) {\n    uVar5 = 0xf;\n    if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }\n    if (uVar5 < uVar3) goto LAB_00381050;\n                    /* try { // try from 0038113c to 00381143 has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) goto LAB_00381160;\n  }\n  else {\nLAB_00381050:\n                    /* try { // try from 00381054 to 0038105b has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }\n  local_60 = piVar4[2];\nLAB_00381084:\n  puVar1 = PTR_runtime_error_004c2e5c;\n  local_64 = piVar4[1];\n  *(undefined1 *)(piVar4 + 2) = 0;\n  *piVar4 = (int)piVar6;\n                    /* try { // try from 003810a0 to 003810a7 has its CatchHandler @ 00381274 */\n  piVar4[1] = 0;\n  (*(code *)puVar1)(this,&local_68);\n  if (local_68 != &local_60) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_38 != local_30) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_50 != local_48) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  *(int **)(this + 0xc) = piVar2;\n  *(undefined4 *)(this + 8) = 1;\n  *(undefined **)this = PTR_vtable_004c5604 + 8;\n  return;\n}\n\n" comment (function_definition "void __thiscall std::ios_base::failure[abi:cxx11]::failure(failure_abi_cxx11_ *this,string *param_1)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  uint uVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  int *local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  uint *local_50;\n  int local_4c;\n  uint local_48 [4];\n  uint *local_38;\n  int local_34;\n  uint local_30 [5];\n  \n  piVar2 = (int *)iostream_category();\n  local_50 = local_48;\n  (*(code *)PTR__M_construct<char*>_004c2098)\n            (&local_50,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0);\n  if (0x7fffffffU - local_4c < 2) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 003811d4 to 003811db has its CatchHandler @ 00381208 */\n    __throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);\n  }\n                    /* try { // try from 00380fb8 to 00380fbf has its CatchHandler @ 00381208 */\n  (*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2);\n  if (*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)) {\n    local_38 = local_30;\n    local_34 = 0;\n    local_30[0] = local_30[0] & 0xffffff;\n                    /* try { // try from 00381008 to 0038100f has its CatchHandler @ 0038122c */\n    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);\n    uVar3 = local_4c + local_34;\n  }\n  else {\n                    /* try { // try from 003811a0 to 003811a7 has its CatchHandler @ 003811dc */\n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }\n  if (local_50 == local_48) {\n    local_48[0] = 0xf;\n  }\n  if (local_48[0] < uVar3) {\n    uVar5 = 0xf;\n    if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }\n    if (uVar5 < uVar3) goto LAB_00381050;\n                    /* try { // try from 0038113c to 00381143 has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) goto LAB_00381160;\n  }\n  else {\nLAB_00381050:\n                    /* try { // try from 00381054 to 0038105b has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }\n  local_60 = piVar4[2];\nLAB_00381084:\n  puVar1 = PTR_runtime_error_004c2e5c;\n  local_64 = piVar4[1];\n  *(undefined1 *)(piVar4 + 2) = 0;\n  *piVar4 = (int)piVar6;\n                    /* try { // try from 003810a0 to 003810a7 has its CatchHandler @ 00381274 */\n  piVar4[1] = 0;\n  (*(code *)puVar1)(this,&local_68);\n  if (local_68 != &local_60) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_38 != local_30) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_50 != local_48) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  *(int **)(this + 0xc) = piVar2;\n  *(undefined4 *)(this + 8) = 1;\n  *(undefined **)this = PTR_vtable_004c5604 + 8;\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::ios_base::failure[abi:cxx11]::" identifier : : identifier : : (array_declarator "failure[abi:cxx11]" identifier [ (ERROR "abi:" identifier :) identifier ]) : :) (function_declarator "failure(failure_abi_cxx11_ *this,string *param_1)" identifier (parameter_list "(failure_abi_cxx11_ *this,string *param_1)" ( (parameter_declaration "failure_abi_cxx11_ *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "string *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int *piVar2;\n  uint uVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  int *local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  uint *local_50;\n  int local_4c;\n  uint local_48 [4];\n  uint *local_38;\n  int local_34;\n  uint local_30 [5];\n  \n  piVar2 = (int *)iostream_category();\n  local_50 = local_48;\n  (*(code *)PTR__M_construct<char*>_004c2098)\n            (&local_50,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0);\n  if (0x7fffffffU - local_4c < 2) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 003811d4 to 003811db has its CatchHandler @ 00381208 */\n    __throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);\n  }\n                    /* try { // try from 00380fb8 to 00380fbf has its CatchHandler @ 00381208 */\n  (*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2);\n  if (*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)) {\n    local_38 = local_30;\n    local_34 = 0;\n    local_30[0] = local_30[0] & 0xffffff;\n                    /* try { // try from 00381008 to 0038100f has its CatchHandler @ 0038122c */\n    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);\n    uVar3 = local_4c + local_34;\n  }\n  else {\n                    /* try { // try from 003811a0 to 003811a7 has its CatchHandler @ 003811dc */\n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }\n  if (local_50 == local_48) {\n    local_48[0] = 0xf;\n  }\n  if (local_48[0] < uVar3) {\n    uVar5 = 0xf;\n    if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }\n    if (uVar5 < uVar3) goto LAB_00381050;\n                    /* try { // try from 0038113c to 00381143 has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) goto LAB_00381160;\n  }\n  else {\nLAB_00381050:\n                    /* try { // try from 00381054 to 0038105b has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }\n  local_60 = piVar4[2];\nLAB_00381084:\n  puVar1 = PTR_runtime_error_004c2e5c;\n  local_64 = piVar4[1];\n  *(undefined1 *)(piVar4 + 2) = 0;\n  *piVar4 = (int)piVar6;\n                    /* try { // try from 003810a0 to 003810a7 has its CatchHandler @ 00381274 */\n  piVar4[1] = 0;\n  (*(code *)puVar1)(this,&local_68);\n  if (local_68 != &local_60) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_38 != local_30) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_50 != local_48) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  *(int **)(this + 0xc) = piVar2;\n  *(undefined4 *)(this + 8) = 1;\n  *(undefined **)this = PTR_vtable_004c5604 + 8;\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "uint *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "uint local_48 [4];" type_identifier (array_declarator "local_48 [4]" identifier [ number_literal ]) ;) (declaration "uint *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "uint local_30 [5];" type_identifier (array_declarator "local_30 [5]" identifier [ number_literal ]) ;) (expression_statement "piVar2 = (int *)iostream_category();" (assignment_expression "piVar2 = (int *)iostream_category()" identifier = (cast_expression "(int *)iostream_category()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "iostream_category()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_50 = local_48;" (assignment_expression "local_50 = local_48" identifier = identifier) ;) (expression_statement "(*(code *)PTR__M_construct<char*>_004c2098)\n            (&local_50,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0);" (call_expression "(*(code *)PTR__M_construct<char*>_004c2098)\n            (&local_50,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0)" (parenthesized_expression "(*(code *)PTR__M_construct<char*>_004c2098)" ( (binary_expression "*(code *)PTR__M_construct<char*>_004c2098" (binary_expression "*(code *)PTR__M_construct<char" (pointer_expression "*(code *)PTR__M_construct" * (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) (ERROR "*" *) > identifier) )) (argument_list "(&local_50,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0)" ( (pointer_expression "&local_50" & identifier) , (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "*(int *)param_1 + *(int *)(param_1 + 4)" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) , number_literal ))) ;) (if_statement "if (0x7fffffffU - local_4c < 2) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 003811d4 to 003811db has its CatchHandler @ 00381208 */\n    __throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);\n  }" if (parenthesized_expression "(0x7fffffffU - local_4c < 2)" ( (binary_expression "0x7fffffffU - local_4c < 2" (binary_expression "0x7fffffffU - local_4c" number_literal - identifier) < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 003811d4 to 003811db has its CatchHandler @ 00381208 */\n    __throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);\n  }" { comment comment (expression_statement "__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);" (call_expression "__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c)" identifier (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c" identifier + number_literal) ))) ;) })) comment (expression_statement "(*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2);" (call_expression "(*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2)" (parenthesized_expression "(*(code *)PTR__M_append_004c1e68)" ( (pointer_expression "*(code *)PTR__M_append_004c1e68" * (cast_expression "(code *)PTR__M_append_004c1e68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2)" ( (pointer_expression "&local_50" & identifier) , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x88" identifier + number_literal) , number_literal ))) ;) (if_statement "if (*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)) {\n    local_38 = local_30;\n    local_34 = 0;\n    local_30[0] = local_30[0] & 0xffffff;\n                    /* try { // try from 00381008 to 0038100f has its CatchHandler @ 0038122c */\n    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);\n    uVar3 = local_4c + local_34;\n  }\n  else {\n                    /* try { // try from 003811a0 to 003811a7 has its CatchHandler @ 003811dc */\n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }" if (parenthesized_expression "(*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0))" ( (binary_expression "*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)" (pointer_expression "*(code **)(*piVar2 + 0x10)" * (cast_expression "(code **)(*piVar2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar2 + 0x10)" ( (binary_expression "*piVar2 + 0x10" (pointer_expression "*piVar2" * identifier) + number_literal) )))) == (cast_expression "(code *)(PTR_LAB_004c12c4 + 0xda0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_004c12c4 + 0xda0)" ( (binary_expression "PTR_LAB_004c12c4 + 0xda0" identifier + number_literal) )))) )) (compound_statement "{\n    local_38 = local_30;\n    local_34 = 0;\n    local_30[0] = local_30[0] & 0xffffff;\n                    /* try { // try from 00381008 to 0038100f has its CatchHandler @ 0038122c */\n    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);\n    uVar3 = local_4c + local_34;\n  }" { (expression_statement "local_38 = local_30;" (assignment_expression "local_38 = local_30" identifier = identifier) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30[0] = local_30[0] & 0xffffff;" (assignment_expression "local_30[0] = local_30[0] & 0xffffff" (subscript_expression "local_30[0]" identifier [ number_literal ]) = (binary_expression "local_30[0] & 0xffffff" (subscript_expression "local_30[0]" identifier [ number_literal ]) & number_literal)) ;) comment (expression_statement "(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);" (call_expression "(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe)" (parenthesized_expression "(*(code *)PTR__M_replace_004c20a0)" ( (pointer_expression "*(code *)PTR__M_replace_004c20a0" * (cast_expression "(code *)PTR__M_replace_004c20a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe)" ( (pointer_expression "&local_38" & identifier) , number_literal , number_literal , (binary_expression "PTR_UINT_004c12dc + -0x2a74" identifier + number_literal) , number_literal ))) ;) (expression_statement "uVar3 = local_4c + local_34;" (assignment_expression "uVar3 = local_4c + local_34" identifier = (binary_expression "local_4c + local_34" identifier + identifier)) ;) }) (else_clause "else {\n                    /* try { // try from 003811a0 to 003811a7 has its CatchHandler @ 003811dc */\n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }" else (compound_statement "{\n                    /* try { // try from 003811a0 to 003811a7 has its CatchHandler @ 003811dc */\n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }" { comment (expression_statement "(**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);" (call_expression "(**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1)" (parenthesized_expression "(**(code **)(*piVar2 + 0x10))" ( (pointer_expression "**(code **)(*piVar2 + 0x10)" * (pointer_expression "*(code **)(*piVar2 + 0x10)" * (cast_expression "(code **)(*piVar2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar2 + 0x10)" ( (binary_expression "*piVar2 + 0x10" (pointer_expression "*piVar2" * identifier) + number_literal) ))))) )) (argument_list "(&local_38,piVar2,1)" ( (pointer_expression "&local_38" & identifier) , identifier , number_literal ))) ;) (expression_statement "uVar3 = local_4c + local_34;" (assignment_expression "uVar3 = local_4c + local_34" identifier = (binary_expression "local_4c + local_34" identifier + identifier)) ;) }))) (if_statement "if (local_50 == local_48) {\n    local_48[0] = 0xf;\n  }" if (parenthesized_expression "(local_50 == local_48)" ( (binary_expression "local_50 == local_48" identifier == identifier) )) (compound_statement "{\n    local_48[0] = 0xf;\n  }" { (expression_statement "local_48[0] = 0xf;" (assignment_expression "local_48[0] = 0xf" (subscript_expression "local_48[0]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (local_48[0] < uVar3) {\n    uVar5 = 0xf;\n    if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }\n    if (uVar5 < uVar3) goto LAB_00381050;\n                    /* try { // try from 0038113c to 00381143 has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) goto LAB_00381160;\n  }\n  else {\nLAB_00381050:\n                    /* try { // try from 00381054 to 0038105b has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }" if (parenthesized_expression "(local_48[0] < uVar3)" ( (binary_expression "local_48[0] < uVar3" (subscript_expression "local_48[0]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n    uVar5 = 0xf;\n    if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }\n    if (uVar5 < uVar3) goto LAB_00381050;\n                    /* try { // try from 0038113c to 00381143 has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) goto LAB_00381160;\n  }" { (expression_statement "uVar5 = 0xf;" (assignment_expression "uVar5 = 0xf" identifier = number_literal) ;) (if_statement "if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }" if (parenthesized_expression "(local_38 != local_30)" ( (binary_expression "local_38 != local_30" identifier != identifier) )) (compound_statement "{\n      uVar5 = local_30[0];\n    }" { (expression_statement "uVar5 = local_30[0];" (assignment_expression "uVar5 = local_30[0]" identifier = (subscript_expression "local_30[0]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar5 < uVar3) goto LAB_00381050;" if (parenthesized_expression "(uVar5 < uVar3)" ( (binary_expression "uVar5 < uVar3" identifier < identifier) )) (goto_statement "goto LAB_00381050;" goto statement_identifier ;)) comment (expression_statement "piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);" (assignment_expression "piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c)" identifier = (cast_expression "(int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c)" (parenthesized_expression "(*(code *)PTR__M_replace_004c20a0)" ( (pointer_expression "*(code *)PTR__M_replace_004c20a0" * (cast_expression "(code *)PTR__M_replace_004c20a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_38,0,0,local_50,local_4c)" ( (pointer_expression "&local_38" & identifier) , number_literal , number_literal , identifier , identifier ))))) ;) (expression_statement "piVar6 = piVar4 + 2;" (assignment_expression "piVar6 = piVar4 + 2" identifier = (binary_expression "piVar4 + 2" identifier + number_literal)) ;) (expression_statement "local_68 = (int *)*piVar4;" (assignment_expression "local_68 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (local_68 == piVar6) goto LAB_00381160;" if (parenthesized_expression "(local_68 == piVar6)" ( (binary_expression "local_68 == piVar6" identifier == identifier) )) (goto_statement "goto LAB_00381160;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00381050:\n                    /* try { // try from 00381054 to 0038105b has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }" else (compound_statement "{\nLAB_00381050:\n                    /* try { // try from 00381054 to 0038105b has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }" { (labeled_statement "LAB_00381050:\n                    /* try { // try from 00381054 to 0038105b has its CatchHandler @ 00381250 */\n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);" statement_identifier : comment (expression_statement "piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);" (assignment_expression "piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50)" identifier = (cast_expression "(int *)(*(code *)PTR__M_append_004c1e68)(&local_50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR__M_append_004c1e68)(&local_50)" (parenthesized_expression "(*(code *)PTR__M_append_004c1e68)" ( (pointer_expression "*(code *)PTR__M_append_004c1e68" * (cast_expression "(code *)PTR__M_append_004c1e68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_50)" ( (pointer_expression "&local_50" & identifier) ))))) ;)) (expression_statement "piVar6 = piVar4 + 2;" (assignment_expression "piVar6 = piVar4 + 2" identifier = (binary_expression "piVar4 + 2" identifier + number_literal)) ;) (expression_statement "local_68 = (int *)*piVar4;" (assignment_expression "local_68 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }" if (parenthesized_expression "(local_68 == piVar6)" ( (binary_expression "local_68 == piVar6" identifier == identifier) )) (compound_statement "{\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }" { (labeled_statement "LAB_00381160:\n      local_68 = &local_60;" statement_identifier : (expression_statement "local_68 = &local_60;" (assignment_expression "local_68 = &local_60" identifier = (pointer_expression "&local_60" & identifier)) ;)) (expression_statement "local_60 = piVar4[2];" (assignment_expression "local_60 = piVar4[2]" identifier = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (expression_statement "local_5c = piVar4[3];" (assignment_expression "local_5c = piVar4[3]" identifier = (subscript_expression "piVar4[3]" identifier [ number_literal ])) ;) (expression_statement "local_58 = piVar4[4];" (assignment_expression "local_58 = piVar4[4]" identifier = (subscript_expression "piVar4[4]" identifier [ number_literal ])) ;) (expression_statement "local_54 = piVar4[5];" (assignment_expression "local_54 = piVar4[5]" identifier = (subscript_expression "piVar4[5]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00381084;" goto statement_identifier ;) })) }))) (expression_statement "local_60 = piVar4[2];" (assignment_expression "local_60 = piVar4[2]" identifier = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00381084:\n  puVar1 = PTR_runtime_error_004c2e5c;" statement_identifier : (expression_statement "puVar1 = PTR_runtime_error_004c2e5c;" (assignment_expression "puVar1 = PTR_runtime_error_004c2e5c" identifier = identifier) ;)) (expression_statement "local_64 = piVar4[1];" (assignment_expression "local_64 = piVar4[1]" identifier = (subscript_expression "piVar4[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(piVar4 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar4 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar4 + 2)" * (cast_expression "(undefined1 *)(piVar4 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 2)" ( (binary_expression "piVar4 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar4 = (int)piVar6;" (assignment_expression "*piVar4 = (int)piVar6" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) comment (expression_statement "piVar4[1] = 0;" (assignment_expression "piVar4[1] = 0" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)puVar1)(this,&local_68);" (call_expression "(*(code *)puVar1)(this,&local_68)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this,&local_68)" ( identifier , (pointer_expression "&local_68" & identifier) ))) ;) (if_statement "if (local_68 != &local_60) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_68 != &local_60)" ( (binary_expression "local_68 != &local_60" identifier != (pointer_expression "&local_60" & identifier)) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_38 != local_30) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_38 != local_30)" ( (binary_expression "local_38 != local_30" identifier != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_50 != local_48) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_50 != local_48)" ( (binary_expression "local_50 != local_48" identifier != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "*(int **)(this + 0xc) = piVar2;" (assignment_expression "*(int **)(this + 0xc) = piVar2" (pointer_expression "*(int **)(this + 0xc)" * (cast_expression "(int **)(this + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(this + 8) = 1;" (assignment_expression "*(undefined4 *)(this + 8) = 1" (pointer_expression "*(undefined4 *)(this + 8)" * (cast_expression "(undefined4 *)(this + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)this = PTR_vtable_004c5604 + 8;" (assignment_expression "*(undefined **)this = PTR_vtable_004c5604 + 8" (pointer_expression "*(undefined **)this" * (cast_expression "(undefined **)this" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "PTR_vtable_004c5604 + 8" identifier + number_literal)) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00380f14(undefined4 *param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  uint uVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  int *local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  uint *local_50;\n  int local_4c;\n  uint local_48 [4];\n  uint *local_38;\n  int local_34;\n  uint local_30 [5];\n  \n  piVar2 = (int *)std::iostream_category();\n  local_50 = local_48;\n  (*(code *)PTR__M_construct<char*>_004c2098)(&local_50,*param_2,*param_2 + param_2[1],0);\n  if (0x7fffffffU - local_4c < 2) {\n                    \n                    \n    std::__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);\n  }\n                    \n  (*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2);\n  if (*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)) {\n    local_38 = local_30;\n    local_34 = 0;\n    local_30[0] = local_30[0] & 0xffffff;\n                    \n    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);\n    uVar3 = local_4c + local_34;\n  }\n  else {\n                    \n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }\n  if (local_50 == local_48) {\n    local_48[0] = 0xf;\n  }\n  if (local_48[0] < uVar3) {\n    uVar5 = 0xf;\n    if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }\n    if (uVar5 < uVar3) goto LAB_00381050;\n                    \n    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) goto LAB_00381160;\n  }\n  else {\nLAB_00381050:\n                    \n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }\n  local_60 = piVar4[2];\nLAB_00381084:\n  puVar1 = PTR_runtime_error_004c2e5c;\n  local_64 = piVar4[1];\n  *(undefined1 *)(piVar4 + 2) = 0;\n  *piVar4 = (int)piVar6;\n                    \n  piVar4[1] = 0;\n  (*(code *)puVar1)(param_1,&local_68);\n  if (local_68 != &local_60) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_38 != local_30) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_50 != local_48) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  param_1[3] = piVar2;\n  param_1[2] = 1;\n  *param_1 = PTR_vtable_004c5604 + 8;\n  return;\n}\n\n" (function_definition "void FUN_00380f14(undefined4 *param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  uint uVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  int *local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  uint *local_50;\n  int local_4c;\n  uint local_48 [4];\n  uint *local_38;\n  int local_34;\n  uint local_30 [5];\n  \n  piVar2 = (int *)std::iostream_category();\n  local_50 = local_48;\n  (*(code *)PTR__M_construct<char*>_004c2098)(&local_50,*param_2,*param_2 + param_2[1],0);\n  if (0x7fffffffU - local_4c < 2) {\n                    \n                    \n    std::__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);\n  }\n                    \n  (*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2);\n  if (*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)) {\n    local_38 = local_30;\n    local_34 = 0;\n    local_30[0] = local_30[0] & 0xffffff;\n                    \n    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);\n    uVar3 = local_4c + local_34;\n  }\n  else {\n                    \n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }\n  if (local_50 == local_48) {\n    local_48[0] = 0xf;\n  }\n  if (local_48[0] < uVar3) {\n    uVar5 = 0xf;\n    if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }\n    if (uVar5 < uVar3) goto LAB_00381050;\n                    \n    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) goto LAB_00381160;\n  }\n  else {\nLAB_00381050:\n                    \n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }\n  local_60 = piVar4[2];\nLAB_00381084:\n  puVar1 = PTR_runtime_error_004c2e5c;\n  local_64 = piVar4[1];\n  *(undefined1 *)(piVar4 + 2) = 0;\n  *piVar4 = (int)piVar6;\n                    \n  piVar4[1] = 0;\n  (*(code *)puVar1)(param_1,&local_68);\n  if (local_68 != &local_60) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_38 != local_30) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_50 != local_48) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  param_1[3] = piVar2;\n  param_1[2] = 1;\n  *param_1 = PTR_vtable_004c5604 + 8;\n  return;\n}" primitive_type (function_declarator "FUN_00380f14(undefined4 *param_1,int *param_2)" identifier (parameter_list "(undefined4 *param_1,int *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int *piVar2;\n  uint uVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  int *local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  uint *local_50;\n  int local_4c;\n  uint local_48 [4];\n  uint *local_38;\n  int local_34;\n  uint local_30 [5];\n  \n  piVar2 = (int *)std::iostream_category();\n  local_50 = local_48;\n  (*(code *)PTR__M_construct<char*>_004c2098)(&local_50,*param_2,*param_2 + param_2[1],0);\n  if (0x7fffffffU - local_4c < 2) {\n                    \n                    \n    std::__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);\n  }\n                    \n  (*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2);\n  if (*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)) {\n    local_38 = local_30;\n    local_34 = 0;\n    local_30[0] = local_30[0] & 0xffffff;\n                    \n    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);\n    uVar3 = local_4c + local_34;\n  }\n  else {\n                    \n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }\n  if (local_50 == local_48) {\n    local_48[0] = 0xf;\n  }\n  if (local_48[0] < uVar3) {\n    uVar5 = 0xf;\n    if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }\n    if (uVar5 < uVar3) goto LAB_00381050;\n                    \n    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) goto LAB_00381160;\n  }\n  else {\nLAB_00381050:\n                    \n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }\n  local_60 = piVar4[2];\nLAB_00381084:\n  puVar1 = PTR_runtime_error_004c2e5c;\n  local_64 = piVar4[1];\n  *(undefined1 *)(piVar4 + 2) = 0;\n  *piVar4 = (int)piVar6;\n                    \n  piVar4[1] = 0;\n  (*(code *)puVar1)(param_1,&local_68);\n  if (local_68 != &local_60) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_38 != local_30) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_50 != local_48) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  param_1[3] = piVar2;\n  param_1[2] = 1;\n  *param_1 = PTR_vtable_004c5604 + 8;\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "uint *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "uint local_48 [4];" type_identifier (array_declarator "local_48 [4]" identifier [ number_literal ]) ;) (declaration "uint *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "uint local_30 [5];" type_identifier (array_declarator "local_30 [5]" identifier [ number_literal ]) ;) (ERROR "piVar2 = (int *)std::" (assignment_expression "piVar2 = (int *)std" identifier = (cast_expression "(int *)std" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) : :) (expression_statement "iostream_category();" (call_expression "iostream_category()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_50 = local_48;" (assignment_expression "local_50 = local_48" identifier = identifier) ;) (expression_statement "(*(code *)PTR__M_construct<char*>_004c2098)(&local_50,*param_2,*param_2 + param_2[1],0);" (call_expression "(*(code *)PTR__M_construct<char*>_004c2098)(&local_50,*param_2,*param_2 + param_2[1],0)" (parenthesized_expression "(*(code *)PTR__M_construct<char*>_004c2098)" ( (binary_expression "*(code *)PTR__M_construct<char*>_004c2098" (binary_expression "*(code *)PTR__M_construct<char" (pointer_expression "*(code *)PTR__M_construct" * (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) (ERROR "*" *) > identifier) )) (argument_list "(&local_50,*param_2,*param_2 + param_2[1],0)" ( (pointer_expression "&local_50" & identifier) , (pointer_expression "*param_2" * identifier) , (binary_expression "*param_2 + param_2[1]" (pointer_expression "*param_2" * identifier) + (subscript_expression "param_2[1]" identifier [ number_literal ])) , number_literal ))) ;) (if_statement "if (0x7fffffffU - local_4c < 2) {\n                    \n                    \n    std::__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);\n  }" if (parenthesized_expression "(0x7fffffffU - local_4c < 2)" ( (binary_expression "0x7fffffffU - local_4c < 2" (binary_expression "0x7fffffffU - local_4c" number_literal - identifier) < number_literal) )) (compound_statement "{\n                    \n                    \n    std::__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);\n  }" { (labeled_statement "std::__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);" statement_identifier : (ERROR ":" :) (expression_statement "__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);" (call_expression "__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c)" identifier (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c" identifier + number_literal) ))) ;)) })) (expression_statement "(*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2);" (call_expression "(*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2)" (parenthesized_expression "(*(code *)PTR__M_append_004c1e68)" ( (pointer_expression "*(code *)PTR__M_append_004c1e68" * (cast_expression "(code *)PTR__M_append_004c1e68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2)" ( (pointer_expression "&local_50" & identifier) , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x88" identifier + number_literal) , number_literal ))) ;) (if_statement "if (*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)) {\n    local_38 = local_30;\n    local_34 = 0;\n    local_30[0] = local_30[0] & 0xffffff;\n                    \n    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);\n    uVar3 = local_4c + local_34;\n  }\n  else {\n                    \n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }" if (parenthesized_expression "(*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0))" ( (binary_expression "*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)" (pointer_expression "*(code **)(*piVar2 + 0x10)" * (cast_expression "(code **)(*piVar2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar2 + 0x10)" ( (binary_expression "*piVar2 + 0x10" (pointer_expression "*piVar2" * identifier) + number_literal) )))) == (cast_expression "(code *)(PTR_LAB_004c12c4 + 0xda0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_004c12c4 + 0xda0)" ( (binary_expression "PTR_LAB_004c12c4 + 0xda0" identifier + number_literal) )))) )) (compound_statement "{\n    local_38 = local_30;\n    local_34 = 0;\n    local_30[0] = local_30[0] & 0xffffff;\n                    \n    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);\n    uVar3 = local_4c + local_34;\n  }" { (expression_statement "local_38 = local_30;" (assignment_expression "local_38 = local_30" identifier = identifier) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30[0] = local_30[0] & 0xffffff;" (assignment_expression "local_30[0] = local_30[0] & 0xffffff" (subscript_expression "local_30[0]" identifier [ number_literal ]) = (binary_expression "local_30[0] & 0xffffff" (subscript_expression "local_30[0]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);" (call_expression "(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe)" (parenthesized_expression "(*(code *)PTR__M_replace_004c20a0)" ( (pointer_expression "*(code *)PTR__M_replace_004c20a0" * (cast_expression "(code *)PTR__M_replace_004c20a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe)" ( (pointer_expression "&local_38" & identifier) , number_literal , number_literal , (binary_expression "PTR_UINT_004c12dc + -0x2a74" identifier + number_literal) , number_literal ))) ;) (expression_statement "uVar3 = local_4c + local_34;" (assignment_expression "uVar3 = local_4c + local_34" identifier = (binary_expression "local_4c + local_34" identifier + identifier)) ;) }) (else_clause "else {\n                    \n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }" else (compound_statement "{\n                    \n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }" { (expression_statement "(**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);" (call_expression "(**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1)" (parenthesized_expression "(**(code **)(*piVar2 + 0x10))" ( (pointer_expression "**(code **)(*piVar2 + 0x10)" * (pointer_expression "*(code **)(*piVar2 + 0x10)" * (cast_expression "(code **)(*piVar2 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar2 + 0x10)" ( (binary_expression "*piVar2 + 0x10" (pointer_expression "*piVar2" * identifier) + number_literal) ))))) )) (argument_list "(&local_38,piVar2,1)" ( (pointer_expression "&local_38" & identifier) , identifier , number_literal ))) ;) (expression_statement "uVar3 = local_4c + local_34;" (assignment_expression "uVar3 = local_4c + local_34" identifier = (binary_expression "local_4c + local_34" identifier + identifier)) ;) }))) (if_statement "if (local_50 == local_48) {\n    local_48[0] = 0xf;\n  }" if (parenthesized_expression "(local_50 == local_48)" ( (binary_expression "local_50 == local_48" identifier == identifier) )) (compound_statement "{\n    local_48[0] = 0xf;\n  }" { (expression_statement "local_48[0] = 0xf;" (assignment_expression "local_48[0] = 0xf" (subscript_expression "local_48[0]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (local_48[0] < uVar3) {\n    uVar5 = 0xf;\n    if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }\n    if (uVar5 < uVar3) goto LAB_00381050;\n                    \n    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) goto LAB_00381160;\n  }\n  else {\nLAB_00381050:\n                    \n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }" if (parenthesized_expression "(local_48[0] < uVar3)" ( (binary_expression "local_48[0] < uVar3" (subscript_expression "local_48[0]" identifier [ number_literal ]) < identifier) )) (compound_statement "{\n    uVar5 = 0xf;\n    if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }\n    if (uVar5 < uVar3) goto LAB_00381050;\n                    \n    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) goto LAB_00381160;\n  }" { (expression_statement "uVar5 = 0xf;" (assignment_expression "uVar5 = 0xf" identifier = number_literal) ;) (if_statement "if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }" if (parenthesized_expression "(local_38 != local_30)" ( (binary_expression "local_38 != local_30" identifier != identifier) )) (compound_statement "{\n      uVar5 = local_30[0];\n    }" { (expression_statement "uVar5 = local_30[0];" (assignment_expression "uVar5 = local_30[0]" identifier = (subscript_expression "local_30[0]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar5 < uVar3) goto LAB_00381050;" if (parenthesized_expression "(uVar5 < uVar3)" ( (binary_expression "uVar5 < uVar3" identifier < identifier) )) (goto_statement "goto LAB_00381050;" goto statement_identifier ;)) (expression_statement "piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);" (assignment_expression "piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c)" identifier = (cast_expression "(int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c)" (parenthesized_expression "(*(code *)PTR__M_replace_004c20a0)" ( (pointer_expression "*(code *)PTR__M_replace_004c20a0" * (cast_expression "(code *)PTR__M_replace_004c20a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_38,0,0,local_50,local_4c)" ( (pointer_expression "&local_38" & identifier) , number_literal , number_literal , identifier , identifier ))))) ;) (expression_statement "piVar6 = piVar4 + 2;" (assignment_expression "piVar6 = piVar4 + 2" identifier = (binary_expression "piVar4 + 2" identifier + number_literal)) ;) (expression_statement "local_68 = (int *)*piVar4;" (assignment_expression "local_68 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (local_68 == piVar6) goto LAB_00381160;" if (parenthesized_expression "(local_68 == piVar6)" ( (binary_expression "local_68 == piVar6" identifier == identifier) )) (goto_statement "goto LAB_00381160;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00381050:\n                    \n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }" else (compound_statement "{\nLAB_00381050:\n                    \n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }" { (labeled_statement "LAB_00381050:\n                    \n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);" statement_identifier : (expression_statement "piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);" (assignment_expression "piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50)" identifier = (cast_expression "(int *)(*(code *)PTR__M_append_004c1e68)(&local_50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR__M_append_004c1e68)(&local_50)" (parenthesized_expression "(*(code *)PTR__M_append_004c1e68)" ( (pointer_expression "*(code *)PTR__M_append_004c1e68" * (cast_expression "(code *)PTR__M_append_004c1e68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_50)" ( (pointer_expression "&local_50" & identifier) ))))) ;)) (expression_statement "piVar6 = piVar4 + 2;" (assignment_expression "piVar6 = piVar4 + 2" identifier = (binary_expression "piVar4 + 2" identifier + number_literal)) ;) (expression_statement "local_68 = (int *)*piVar4;" (assignment_expression "local_68 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }" if (parenthesized_expression "(local_68 == piVar6)" ( (binary_expression "local_68 == piVar6" identifier == identifier) )) (compound_statement "{\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }" { (labeled_statement "LAB_00381160:\n      local_68 = &local_60;" statement_identifier : (expression_statement "local_68 = &local_60;" (assignment_expression "local_68 = &local_60" identifier = (pointer_expression "&local_60" & identifier)) ;)) (expression_statement "local_60 = piVar4[2];" (assignment_expression "local_60 = piVar4[2]" identifier = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (expression_statement "local_5c = piVar4[3];" (assignment_expression "local_5c = piVar4[3]" identifier = (subscript_expression "piVar4[3]" identifier [ number_literal ])) ;) (expression_statement "local_58 = piVar4[4];" (assignment_expression "local_58 = piVar4[4]" identifier = (subscript_expression "piVar4[4]" identifier [ number_literal ])) ;) (expression_statement "local_54 = piVar4[5];" (assignment_expression "local_54 = piVar4[5]" identifier = (subscript_expression "piVar4[5]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00381084;" goto statement_identifier ;) })) }))) (expression_statement "local_60 = piVar4[2];" (assignment_expression "local_60 = piVar4[2]" identifier = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00381084:\n  puVar1 = PTR_runtime_error_004c2e5c;" statement_identifier : (expression_statement "puVar1 = PTR_runtime_error_004c2e5c;" (assignment_expression "puVar1 = PTR_runtime_error_004c2e5c" identifier = identifier) ;)) (expression_statement "local_64 = piVar4[1];" (assignment_expression "local_64 = piVar4[1]" identifier = (subscript_expression "piVar4[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(piVar4 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar4 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar4 + 2)" * (cast_expression "(undefined1 *)(piVar4 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 2)" ( (binary_expression "piVar4 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar4 = (int)piVar6;" (assignment_expression "*piVar4 = (int)piVar6" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar4[1] = 0;" (assignment_expression "piVar4[1] = 0" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)puVar1)(param_1,&local_68);" (call_expression "(*(code *)puVar1)(param_1,&local_68)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,&local_68)" ( identifier , (pointer_expression "&local_68" & identifier) ))) ;) (if_statement "if (local_68 != &local_60) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_68 != &local_60)" ( (binary_expression "local_68 != &local_60" identifier != (pointer_expression "&local_60" & identifier)) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_38 != local_30) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_38 != local_30)" ( (binary_expression "local_38 != local_30" identifier != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (if_statement "if (local_50 != local_48) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_50 != local_48)" ( (binary_expression "local_50 != local_48" identifier != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" ( (pointer_expression "*(code *)PTR_operator_delete_004c12fc" * (cast_expression "(code *)PTR_operator_delete_004c12fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "param_1[3] = piVar2;" (assignment_expression "param_1[3] = piVar2" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = 1;" (assignment_expression "param_1[2] = 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_1 = PTR_vtable_004c5604 + 8;" (assignment_expression "*param_1 = PTR_vtable_004c5604 + 8" (pointer_expression "*param_1" * identifier) = (binary_expression "PTR_vtable_004c5604 + 8" identifier + number_literal)) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (ERROR (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) : :) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < IDENT) (ERROR *) > IDENT) )) (argument_list ( (pointer_expression & IDENT) , (pointer_expression * IDENT) , (binary_expression (pointer_expression * IDENT) + (subscript_expression IDENT [ LIT ])) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression LIT - IDENT) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;)) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , LIT , LIT , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (return_statement return ;) })))
(function_definition "void FUN_00380f14(undefined4 *param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  uint uVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  int *local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  uint *local_50;\n  int local_4c;\n  uint local_48 [4];\n  uint *local_38;\n  int local_34;\n  uint local_30 [5];\n  \n  piVar2 = (int *)std::iostream_category();\n  local_50 = local_48;\n  (*(code *)PTR__M_construct<char*>_004c2098)(&local_50,*param_2,*param_2 + param_2[1],0);\n  if (0x7fffffffU - local_4c < 2) {\n                    \n                    \n    std::__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);\n  }\n                    \n  (*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2);\n  if (*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)) {\n    local_38 = local_30;\n    local_34 = 0;\n    local_30[0] = local_30[0] & 0xffffff;\n                    \n    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);\n    uVar3 = local_4c + local_34;\n  }\n  else {\n                    \n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }\n  if (local_50 == local_48) {\n    local_48[0] = 0xf;\n  }\n  if (local_48[0] < uVar3) {\n    uVar5 = 0xf;\n    if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }\n    if (uVar5 < uVar3) goto LAB_00381050;\n                    \n    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) goto LAB_00381160;\n  }\n  else {\nLAB_00381050:\n                    \n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }\n  local_60 = piVar4[2];\nLAB_00381084:\n  puVar1 = PTR_runtime_error_004c2e5c;\n  local_64 = piVar4[1];\n  *(undefined1 *)(piVar4 + 2) = 0;\n  *piVar4 = (int)piVar6;\n                    \n  piVar4[1] = 0;\n  (*(code *)puVar1)(param_1,&local_68);\n  if (local_68 != &local_60) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_38 != local_30) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_50 != local_48) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  param_1[3] = piVar2;\n  param_1[2] = 1;\n  *param_1 = PTR_vtable_004c5604 + 8;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00380f14(undefined4 *param_1,int *param_2)" (identifier "FUN_00380f14") (parameter_list "(undefined4 *param_1,int *param_2)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int *piVar2;\n  uint uVar3;\n  int *piVar4;\n  uint uVar5;\n  int *piVar6;\n  int *local_68;\n  int local_64;\n  int local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  uint *local_50;\n  int local_4c;\n  uint local_48 [4];\n  uint *local_38;\n  int local_34;\n  uint local_30 [5];\n  \n  piVar2 = (int *)std::iostream_category();\n  local_50 = local_48;\n  (*(code *)PTR__M_construct<char*>_004c2098)(&local_50,*param_2,*param_2 + param_2[1],0);\n  if (0x7fffffffU - local_4c < 2) {\n                    \n                    \n    std::__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);\n  }\n                    \n  (*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2);\n  if (*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)) {\n    local_38 = local_30;\n    local_34 = 0;\n    local_30[0] = local_30[0] & 0xffffff;\n                    \n    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);\n    uVar3 = local_4c + local_34;\n  }\n  else {\n                    \n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }\n  if (local_50 == local_48) {\n    local_48[0] = 0xf;\n  }\n  if (local_48[0] < uVar3) {\n    uVar5 = 0xf;\n    if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }\n    if (uVar5 < uVar3) goto LAB_00381050;\n                    \n    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) goto LAB_00381160;\n  }\n  else {\nLAB_00381050:\n                    \n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }\n  local_60 = piVar4[2];\nLAB_00381084:\n  puVar1 = PTR_runtime_error_004c2e5c;\n  local_64 = piVar4[1];\n  *(undefined1 *)(piVar4 + 2) = 0;\n  *piVar4 = (int)piVar6;\n                    \n  piVar4[1] = 0;\n  (*(code *)puVar1)(param_1,&local_68);\n  if (local_68 != &local_60) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_38 != local_30) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  if (local_50 != local_48) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  param_1[3] = piVar2;\n  param_1[2] = 1;\n  *param_1 = PTR_vtable_004c5604 + 8;\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int *local_68;" (primitive_type "int") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "int local_60;" (primitive_type "int") (identifier "local_60") (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (declaration "int local_58;" (primitive_type "int") (identifier "local_58") (; ";")) (declaration "int local_54;" (primitive_type "int") (identifier "local_54") (; ";")) (declaration "uint *local_50;" (type_identifier "uint") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "uint local_48 [4];" (type_identifier "uint") (array_declarator "local_48 [4]" (identifier "local_48") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "uint *local_38;" (type_identifier "uint") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "uint local_30 [5];" (type_identifier "uint") (array_declarator "local_30 [5]" (identifier "local_30") ([ "[") (number_literal "5") (] "]")) (; ";")) (ERROR "piVar2 = (int *)std::" (assignment_expression "piVar2 = (int *)std" (identifier "piVar2") (= "=") (cast_expression "(int *)std" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "std"))) (: ":") (: ":")) (expression_statement "iostream_category();" (call_expression "iostream_category()" (identifier "iostream_category") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_50 = local_48;" (assignment_expression "local_50 = local_48" (identifier "local_50") (= "=") (identifier "local_48")) (; ";")) (expression_statement "(*(code *)PTR__M_construct<char*>_004c2098)(&local_50,*param_2,*param_2 + param_2[1],0);" (call_expression "(*(code *)PTR__M_construct<char*>_004c2098)(&local_50,*param_2,*param_2 + param_2[1],0)" (parenthesized_expression "(*(code *)PTR__M_construct<char*>_004c2098)" (( "(") (binary_expression "*(code *)PTR__M_construct<char*>_004c2098" (binary_expression "*(code *)PTR__M_construct<char" (pointer_expression "*(code *)PTR__M_construct" (* "*") (cast_expression "(code *)PTR__M_construct" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_construct"))) (< "<") (identifier "char")) (ERROR "*" (* "*")) (> ">") (identifier "_004c2098")) () ")")) (argument_list "(&local_50,*param_2,*param_2 + param_2[1],0)" (( "(") (pointer_expression "&local_50" (& "&") (identifier "local_50")) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (binary_expression "*param_2 + param_2[1]" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (0x7fffffffU - local_4c < 2) {\n                    \n                    \n    std::__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);\n  }" (if "if") (parenthesized_expression "(0x7fffffffU - local_4c < 2)" (( "(") (binary_expression "0x7fffffffU - local_4c < 2" (binary_expression "0x7fffffffU - local_4c" (number_literal "0x7fffffffU") (- "-") (identifier "local_4c")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n                    \n                    \n    std::__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);\n  }" ({ "{") (labeled_statement "std::__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);" (statement_identifier "std") (: ":") (ERROR ":" (: ":")) (expression_statement "__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);" (call_expression "__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c)" (identifier "__throw_length_error") (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x446c")) () ")"))) (; ";"))) (} "}"))) (expression_statement "(*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2);" (call_expression "(*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2)" (parenthesized_expression "(*(code *)PTR__M_append_004c1e68)" (( "(") (pointer_expression "*(code *)PTR__M_append_004c1e68" (* "*") (cast_expression "(code *)PTR__M_append_004c1e68" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_append_004c1e68"))) () ")")) (argument_list "(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2)" (( "(") (pointer_expression "&local_50" (& "&") (identifier "local_50")) (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x88" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x88")) (, ",") (number_literal "2") () ")"))) (; ";")) (if_statement "if (*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)) {\n    local_38 = local_30;\n    local_34 = 0;\n    local_30[0] = local_30[0] & 0xffffff;\n                    \n    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);\n    uVar3 = local_4c + local_34;\n  }\n  else {\n                    \n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }" (if "if") (parenthesized_expression "(*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0))" (( "(") (binary_expression "*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)" (pointer_expression "*(code **)(*piVar2 + 0x10)" (* "*") (cast_expression "(code **)(*piVar2 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar2 + 0x10)" (( "(") (binary_expression "*piVar2 + 0x10" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "0x10")) () ")")))) (== "==") (cast_expression "(code *)(PTR_LAB_004c12c4 + 0xda0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_004c12c4 + 0xda0)" (( "(") (binary_expression "PTR_LAB_004c12c4 + 0xda0" (identifier "PTR_LAB_004c12c4") (+ "+") (number_literal "0xda0")) () ")")))) () ")")) (compound_statement "{\n    local_38 = local_30;\n    local_34 = 0;\n    local_30[0] = local_30[0] & 0xffffff;\n                    \n    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);\n    uVar3 = local_4c + local_34;\n  }" ({ "{") (expression_statement "local_38 = local_30;" (assignment_expression "local_38 = local_30" (identifier "local_38") (= "=") (identifier "local_30")) (; ";")) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30[0] = local_30[0] & 0xffffff;" (assignment_expression "local_30[0] = local_30[0] & 0xffffff" (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "local_30[0] & 0xffffff" (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) (& "&") (number_literal "0xffffff"))) (; ";")) (expression_statement "(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);" (call_expression "(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe)" (parenthesized_expression "(*(code *)PTR__M_replace_004c20a0)" (( "(") (pointer_expression "*(code *)PTR__M_replace_004c20a0" (* "*") (cast_expression "(code *)PTR__M_replace_004c20a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_replace_004c20a0"))) () ")")) (argument_list "(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (binary_expression "PTR_UINT_004c12dc + -0x2a74" (identifier "PTR_UINT_004c12dc") (+ "+") (number_literal "-0x2a74")) (, ",") (number_literal "0xe") () ")"))) (; ";")) (expression_statement "uVar3 = local_4c + local_34;" (assignment_expression "uVar3 = local_4c + local_34" (identifier "uVar3") (= "=") (binary_expression "local_4c + local_34" (identifier "local_4c") (+ "+") (identifier "local_34"))) (; ";")) (} "}")) (else_clause "else {\n                    \n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }" (else "else") (compound_statement "{\n                    \n    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);\n    uVar3 = local_4c + local_34;\n  }" ({ "{") (expression_statement "(**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);" (call_expression "(**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1)" (parenthesized_expression "(**(code **)(*piVar2 + 0x10))" (( "(") (pointer_expression "**(code **)(*piVar2 + 0x10)" (* "*") (pointer_expression "*(code **)(*piVar2 + 0x10)" (* "*") (cast_expression "(code **)(*piVar2 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar2 + 0x10)" (( "(") (binary_expression "*piVar2 + 0x10" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(&local_38,piVar2,1)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (identifier "piVar2") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "uVar3 = local_4c + local_34;" (assignment_expression "uVar3 = local_4c + local_34" (identifier "uVar3") (= "=") (binary_expression "local_4c + local_34" (identifier "local_4c") (+ "+") (identifier "local_34"))) (; ";")) (} "}")))) (if_statement "if (local_50 == local_48) {\n    local_48[0] = 0xf;\n  }" (if "if") (parenthesized_expression "(local_50 == local_48)" (( "(") (binary_expression "local_50 == local_48" (identifier "local_50") (== "==") (identifier "local_48")) () ")")) (compound_statement "{\n    local_48[0] = 0xf;\n  }" ({ "{") (expression_statement "local_48[0] = 0xf;" (assignment_expression "local_48[0] = 0xf" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0xf")) (; ";")) (} "}"))) (if_statement "if (local_48[0] < uVar3) {\n    uVar5 = 0xf;\n    if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }\n    if (uVar5 < uVar3) goto LAB_00381050;\n                    \n    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) goto LAB_00381160;\n  }\n  else {\nLAB_00381050:\n                    \n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }" (if "if") (parenthesized_expression "(local_48[0] < uVar3)" (( "(") (binary_expression "local_48[0] < uVar3" (subscript_expression "local_48[0]" (identifier "local_48") ([ "[") (number_literal "0") (] "]")) (< "<") (identifier "uVar3")) () ")")) (compound_statement "{\n    uVar5 = 0xf;\n    if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }\n    if (uVar5 < uVar3) goto LAB_00381050;\n                    \n    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) goto LAB_00381160;\n  }" ({ "{") (expression_statement "uVar5 = 0xf;" (assignment_expression "uVar5 = 0xf" (identifier "uVar5") (= "=") (number_literal "0xf")) (; ";")) (if_statement "if (local_38 != local_30) {\n      uVar5 = local_30[0];\n    }" (if "if") (parenthesized_expression "(local_38 != local_30)" (( "(") (binary_expression "local_38 != local_30" (identifier "local_38") (!= "!=") (identifier "local_30")) () ")")) (compound_statement "{\n      uVar5 = local_30[0];\n    }" ({ "{") (expression_statement "uVar5 = local_30[0];" (assignment_expression "uVar5 = local_30[0]" (identifier "uVar5") (= "=") (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}"))) (if_statement "if (uVar5 < uVar3) goto LAB_00381050;" (if "if") (parenthesized_expression "(uVar5 < uVar3)" (( "(") (binary_expression "uVar5 < uVar3" (identifier "uVar5") (< "<") (identifier "uVar3")) () ")")) (goto_statement "goto LAB_00381050;" (goto "goto") (statement_identifier "LAB_00381050") (; ";"))) (expression_statement "piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);" (assignment_expression "piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c)" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c)" (parenthesized_expression "(*(code *)PTR__M_replace_004c20a0)" (( "(") (pointer_expression "*(code *)PTR__M_replace_004c20a0" (* "*") (cast_expression "(code *)PTR__M_replace_004c20a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_replace_004c20a0"))) () ")")) (argument_list "(&local_38,0,0,local_50,local_4c)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "local_50") (, ",") (identifier "local_4c") () ")"))))) (; ";")) (expression_statement "piVar6 = piVar4 + 2;" (assignment_expression "piVar6 = piVar4 + 2" (identifier "piVar6") (= "=") (binary_expression "piVar4 + 2" (identifier "piVar4") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "local_68 = (int *)*piVar4;" (assignment_expression "local_68 = (int *)*piVar4" (identifier "local_68") (= "=") (cast_expression "(int *)*piVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (if_statement "if (local_68 == piVar6) goto LAB_00381160;" (if "if") (parenthesized_expression "(local_68 == piVar6)" (( "(") (binary_expression "local_68 == piVar6" (identifier "local_68") (== "==") (identifier "piVar6")) () ")")) (goto_statement "goto LAB_00381160;" (goto "goto") (statement_identifier "LAB_00381160") (; ";"))) (} "}")) (else_clause "else {\nLAB_00381050:\n                    \n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }" (else "else") (compound_statement "{\nLAB_00381050:\n                    \n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);\n    piVar6 = piVar4 + 2;\n    local_68 = (int *)*piVar4;\n    if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }\n  }" ({ "{") (labeled_statement "LAB_00381050:\n                    \n    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);" (statement_identifier "LAB_00381050") (: ":") (expression_statement "piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);" (assignment_expression "piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50)" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR__M_append_004c1e68)(&local_50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR__M_append_004c1e68)(&local_50)" (parenthesized_expression "(*(code *)PTR__M_append_004c1e68)" (( "(") (pointer_expression "*(code *)PTR__M_append_004c1e68" (* "*") (cast_expression "(code *)PTR__M_append_004c1e68" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_append_004c1e68"))) () ")")) (argument_list "(&local_50)" (( "(") (pointer_expression "&local_50" (& "&") (identifier "local_50")) () ")"))))) (; ";"))) (expression_statement "piVar6 = piVar4 + 2;" (assignment_expression "piVar6 = piVar4 + 2" (identifier "piVar6") (= "=") (binary_expression "piVar4 + 2" (identifier "piVar4") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "local_68 = (int *)*piVar4;" (assignment_expression "local_68 = (int *)*piVar4" (identifier "local_68") (= "=") (cast_expression "(int *)*piVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (if_statement "if (local_68 == piVar6) {\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }" (if "if") (parenthesized_expression "(local_68 == piVar6)" (( "(") (binary_expression "local_68 == piVar6" (identifier "local_68") (== "==") (identifier "piVar6")) () ")")) (compound_statement "{\nLAB_00381160:\n      local_68 = &local_60;\n      local_60 = piVar4[2];\n      local_5c = piVar4[3];\n      local_58 = piVar4[4];\n      local_54 = piVar4[5];\n      goto LAB_00381084;\n    }" ({ "{") (labeled_statement "LAB_00381160:\n      local_68 = &local_60;" (statement_identifier "LAB_00381160") (: ":") (expression_statement "local_68 = &local_60;" (assignment_expression "local_68 = &local_60" (identifier "local_68") (= "=") (pointer_expression "&local_60" (& "&") (identifier "local_60"))) (; ";"))) (expression_statement "local_60 = piVar4[2];" (assignment_expression "local_60 = piVar4[2]" (identifier "local_60") (= "=") (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_5c = piVar4[3];" (assignment_expression "local_5c = piVar4[3]" (identifier "local_5c") (= "=") (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_58 = piVar4[4];" (assignment_expression "local_58 = piVar4[4]" (identifier "local_58") (= "=") (subscript_expression "piVar4[4]" (identifier "piVar4") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_54 = piVar4[5];" (assignment_expression "local_54 = piVar4[5]" (identifier "local_54") (= "=") (subscript_expression "piVar4[5]" (identifier "piVar4") ([ "[") (number_literal "5") (] "]"))) (; ";")) (goto_statement "goto LAB_00381084;" (goto "goto") (statement_identifier "LAB_00381084") (; ";")) (} "}"))) (} "}")))) (expression_statement "local_60 = piVar4[2];" (assignment_expression "local_60 = piVar4[2]" (identifier "local_60") (= "=") (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (labeled_statement "LAB_00381084:\n  puVar1 = PTR_runtime_error_004c2e5c;" (statement_identifier "LAB_00381084") (: ":") (expression_statement "puVar1 = PTR_runtime_error_004c2e5c;" (assignment_expression "puVar1 = PTR_runtime_error_004c2e5c" (identifier "puVar1") (= "=") (identifier "PTR_runtime_error_004c2e5c")) (; ";"))) (expression_statement "local_64 = piVar4[1];" (assignment_expression "local_64 = piVar4[1]" (identifier "local_64") (= "=") (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(piVar4 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar4 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar4 + 2)" (* "*") (cast_expression "(undefined1 *)(piVar4 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4 + 2)" (( "(") (binary_expression "piVar4 + 2" (identifier "piVar4") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar4 = (int)piVar6;" (assignment_expression "*piVar4 = (int)piVar6" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "piVar4[1] = 0;" (assignment_expression "piVar4[1] = 0" (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)puVar1)(param_1,&local_68);" (call_expression "(*(code *)puVar1)(param_1,&local_68)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(param_1,&local_68)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) () ")"))) (; ";")) (if_statement "if (local_68 != &local_60) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" (if "if") (parenthesized_expression "(local_68 != &local_60)" (( "(") (binary_expression "local_68 != &local_60" (identifier "local_68") (!= "!=") (pointer_expression "&local_60" (& "&") (identifier "local_60"))) () ")")) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_004c12fc" (* "*") (cast_expression "(code *)PTR_operator_delete_004c12fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_004c12fc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_38 != local_30) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" (if "if") (parenthesized_expression "(local_38 != local_30)" (( "(") (binary_expression "local_38 != local_30" (identifier "local_38") (!= "!=") (identifier "local_30")) () ")")) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_004c12fc" (* "*") (cast_expression "(code *)PTR_operator_delete_004c12fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_004c12fc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_50 != local_48) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" (if "if") (parenthesized_expression "(local_50 != local_48)" (( "(") (binary_expression "local_50 != local_48" (identifier "local_50") (!= "!=") (identifier "local_48")) () ")")) (compound_statement "{\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_004c12fc)();" (call_expression "(*(code *)PTR_operator_delete_004c12fc)()" (parenthesized_expression "(*(code *)PTR_operator_delete_004c12fc)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_004c12fc" (* "*") (cast_expression "(code *)PTR_operator_delete_004c12fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_004c12fc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "param_1[3] = piVar2;" (assignment_expression "param_1[3] = piVar2" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "piVar2")) (; ";")) (expression_statement "param_1[2] = 1;" (assignment_expression "param_1[2] = 1" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "*param_1 = PTR_vtable_004c5604 + 8;" (assignment_expression "*param_1 = PTR_vtable_004c5604 + 8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (binary_expression "PTR_vtable_004c5604 + 8" (identifier "PTR_vtable_004c5604") (+ "+") (number_literal "8"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* std::ios_base::failure[abi:cxx11]::failure(std::string const&) */

void __thiscall std::ios_base::function_1[abi:cxx11]::function_1(type_1 *var_21,type_2 *var_4)

{
  type_3 *puVar1;
  int *piVar2;
  type_4 var_14;
  int *var_18;
  type_4 var_17;
  int *var_20;
  int *var_19;
  int local_64;
  int local_60;
  int local_5c;
  int local_58;
  int local_54;
  type_4 *var_12;
  int var_5;
  type_4 var_13 [4];
  type_4 *var_15;
  int var_11;
  type_4 var_16 [5];
  
  piVar2 = (int *)var_1();
  var_12 = var_13;
  (*(type_5 *)PTR__M_construct<var_2*>var_3)
            (&var_12,*(int *)var_4,*(int *)var_4 + *(int *)(var_4 + 4),0);
  if (0x7fffffffU - var_5 < 2) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 003811d4 to 003811db has its CatchHandler @ 00381208 */
    var_6(var_7 + 0x446c);
  }
                    /* try { // try from 00380fb8 to 00380fbf has its CatchHandler @ 00381208 */
  (*(type_5 *)PTR__M_append_004c1e68)(&var_12,var_8 + -0x88,2);
  if (*(type_5 **)(*piVar2 + 0x10) == (type_5 *)(var_9 + 0xda0)) {
    var_15 = var_16;
    var_11 = 0;
    var_16[0] = var_16[0] & 0xffffff;
                    /* try { // try from 00381008 to 0038100f has its CatchHandler @ 0038122c */
    (*(type_5 *)PTR__M_replace_004c20a0)(&var_15,0,0,var_10 + -0x2a74,0xe);
    var_14 = var_5 + var_11;
  }
  else {
                    /* try { // try from 003811a0 to 003811a7 has its CatchHandler @ 003811dc */
    (**(type_5 **)(*piVar2 + 0x10))(&var_15,piVar2,1);
    var_14 = var_5 + var_11;
  }
  if (var_12 == var_13) {
    var_13[0] = 0xf;
  }
  if (var_13[0] < var_14) {
    var_17 = 0xf;
    if (var_15 != var_16) {
      var_17 = var_16[0];
    }
    if (var_17 < var_14) goto LAB_00381050;
                    /* try { // try from 0038113c to 00381143 has its CatchHandler @ 00381250 */
    var_18 = (int *)(*(type_5 *)PTR__M_replace_004c20a0)(&var_15,0,0,var_12,var_5);
    var_20 = var_18 + 2;
    var_19 = (int *)*var_18;
    if (var_19 == var_20) goto LAB_00381160;
  }
  else {
LAB_00381050:
                    /* try { // try from 00381054 to 0038105b has its CatchHandler @ 00381250 */
    var_18 = (int *)(*(type_5 *)PTR__M_append_004c1e68)(&var_12);
    var_20 = var_18 + 2;
    var_19 = (int *)*var_18;
    if (var_19 == var_20) {
LAB_00381160:
      var_19 = &local_60;
      local_60 = var_18[2];
      local_5c = var_18[3];
      local_58 = var_18[4];
      local_54 = var_18[5];
      goto LAB_00381084;
    }
  }
  local_60 = var_18[2];
LAB_00381084:
  puVar1 = PTR_runtime_error_004c2e5c;
  local_64 = var_18[1];
  *(type_6 *)(var_18 + 2) = 0;
  *var_18 = (int)var_20;
                    /* try { // try from 003810a0 to 003810a7 has its CatchHandler @ 00381274 */
  var_18[1] = 0;
  (*(type_5 *)puVar1)(var_21,&var_19);
  if (var_19 != &local_60) {
    (*(type_5 *)PTR_operator_delete_004c12fc)();
  }
  if (var_15 != var_16) {
    (*(type_5 *)PTR_operator_delete_004c12fc)();
  }
  if (var_12 != var_13) {
    (*(type_5 *)PTR_operator_delete_004c12fc)();
  }
  *(int **)(var_21 + 0xc) = piVar2;
  *(type_7 *)(var_21 + 8) = 1;
  *(type_3 **)var_21 = var_22 + 8;
  return;
}


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

void MASKED(undefined4 *param_1,int *param_2)

{
  undefined *puVar1;
  int *piVar2;
  uint uVar3;
  int *piVar4;
  uint uVar5;
  int *piVar6;
  int *local_68;
  int local_64;
  int local_60;
  int local_5c;
  int local_58;
  int local_54;
  uint *local_50;
  int local_4c;
  uint local_48 [4];
  uint *local_38;
  int local_34;
  uint local_30 [5];
  
  piVar2 = (int *)std::iostream_category();
  local_50 = local_48;
  (*(code *)PTR__M_construct<char*>_004c2098)(&local_50,*param_2,*param_2 + param_2[1],0);
  if (0x7fffffffU - local_4c < 2) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 003811d4 to 003811db has its CatchHandler @ 00381208 */
    std::__throw_length_error(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x446c);
  }
                    /* try { // try from 00380fb8 to 00380fbf has its CatchHandler @ 00381208 */
  (*(code *)PTR__M_append_004c1e68)(&local_50,PTR_s_in_a_linker_script_004c191c + -0x88,2);
  if (*(code **)(*piVar2 + 0x10) == (code *)(PTR_LAB_004c12c4 + 0xda0)) {
    local_38 = local_30;
    local_34 = 0;
    local_30[0] = local_30[0] & 0xffffff;
                    /* try { // try from 00381008 to 0038100f has its CatchHandler @ 0038122c */
    (*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,PTR_UINT_004c12dc + -0x2a74,0xe);
    uVar3 = local_4c + local_34;
  }
  else {
                    /* try { // try from 003811a0 to 003811a7 has its CatchHandler @ 003811dc */
    (**(code **)(*piVar2 + 0x10))(&local_38,piVar2,1);
    uVar3 = local_4c + local_34;
  }
  if (local_50 == local_48) {
    local_48[0] = 0xf;
  }
  if (local_48[0] < uVar3) {
    uVar5 = 0xf;
    if (local_38 != local_30) {
      uVar5 = local_30[0];
    }
    if (uVar5 < uVar3) goto LAB_00381050;
                    /* try { // try from 0038113c to 00381143 has its CatchHandler @ 00381250 */
    piVar4 = (int *)(*(code *)PTR__M_replace_004c20a0)(&local_38,0,0,local_50,local_4c);
    piVar6 = piVar4 + 2;
    local_68 = (int *)*piVar4;
    if (local_68 == piVar6) goto LAB_00381160;
  }
  else {
LAB_00381050:
                    /* try { // try from 00381054 to 0038105b has its CatchHandler @ 00381250 */
    piVar4 = (int *)(*(code *)PTR__M_append_004c1e68)(&local_50);
    piVar6 = piVar4 + 2;
    local_68 = (int *)*piVar4;
    if (local_68 == piVar6) {
LAB_00381160:
      local_68 = &local_60;
      local_60 = piVar4[2];
      local_5c = piVar4[3];
      local_58 = piVar4[4];
      local_54 = piVar4[5];
      goto LAB_00381084;
    }
  }
  local_60 = piVar4[2];
LAB_00381084:
  puVar1 = PTR_runtime_error_004c2e5c;
  local_64 = piVar4[1];
  *(undefined1 *)(piVar4 + 2) = 0;
  *piVar4 = (int)piVar6;
                    /* try { // try from 003810a0 to 003810a7 has its CatchHandler @ 00381274 */
  piVar4[1] = 0;
  (*(code *)puVar1)(param_1,&local_68);
  if (local_68 != &local_60) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  if (local_38 != local_30) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  if (local_50 != local_48) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  param_1[3] = piVar2;
  param_1[2] = 1;
  *param_1 = PTR_vtable_004c5604 + 8;
  return;
}

